Avatar billede brynil Nybegynder
10. februar 2006 - 21:45 Der er 45 kommentarer og
1 løsning

Connectionstring i web.config på hotel

Jeg har lavet et site med login v.hj.af wizard i ASP.NET og det fungerer upåklageligt - lokalt med IIS.

web.config indeholder ikke en connectionstring, og jeg kan se den er defineret i IIS.

Jeg kan også se at databasen er etableret på serveren.

Jeg har brug for hjælp til at ændre forbindelsen til min sql-database på hotellet. Såvidt jeg kan se, skal det ske ved at oprette en connectionstring i web.config.

Jeg har - hvilket nok er åbenlyst - et begrænset kendskab til SQL databaser, så spørg endeligt hvis der mangler oplysninger!
Avatar billede brynil Nybegynder
11. februar 2006 - 08:38 #1
Jeg har nu fået adgang til databasen, men der er fortsat noget galt. Min connectionstring ser således ud:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="server=[mssqlservernavn];database=[databasenavn];uid=[xxxx];pwd=[xxx]"
      providerName="System.Data.SqlClient" />

Jeg bliver ikke logget ind på normal vis. Jeg ser ikke den forventede side og når jeg forsøger at åbne en side bliver jeg bedt om usr og pw til ftp-serveren. Herefter fungerer det næsten normalt.

Er der en fejl i connectionstring eller måske et andet sted ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 09:02 #2
har du databasen liggende som en fil i app_data eller er det en ekstern sql server ?

Tilbyder dit webhotel overhovedet asp.net 2.0 ?
Avatar billede brynil Nybegynder
11. februar 2006 - 09:14 #3
Hej dr_chaos!

Ja, der er asp.net 2.0.

Udbyderen har tilknyttet databasen. Jeg har dog ikke fået svar på om de gjorde det fra deres eget beskyttede db bibliotek eller fra App_Data. Jeg smed databasen begge steder og bad dem oplyse mig hvilken de anvendte når de tilknyttede den, men fik dog ikke svar på det spm.

Når jeg er kommet ind (efter at have givet usr og pw som nævnt ovenfor) kan jeg registrere og ændre pw, så der er forbindelse til db'en.

Når jeg har afgivet usr og pw på login-siden, forbliver master-siden uændret. Den skulle egentlig vise en træstruktur mm. Dette kommer først frem når jeg direkte kalder en af siderne på sitet (og oplyser usr/pw) og når jeg hopper tilbage til Default.aspx fra en af siderne, så ses disse objekter ikke.
Avatar billede brynil Nybegynder
11. februar 2006 - 09:15 #4
Lidt rodet beskrivelse, nok lidt lissom jeg føler det på 1'sal lige nu :))
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 09:16 #5
paste lige hele din web.config
Avatar billede brynil Nybegynder
11. februar 2006 - 09:21 #6
Den kommer her:

<?xml version="1.0"?>

<configuration>
 
  <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="server=XXXX;Integrated Security=False;database=XXX;Persist Security Info=False;uid=XXX;pwd=XXX" providerName="System.Data.SqlClient" />

  </connectionStrings>
  <appSettings>
  </appSettings>
  <system.web>
    <roleManager enabled="true"/>
    <compilation debug="true" strict="false" explicit="true"/>
    <pages>
      <namespaces>
        <clear/>
        <add namespace="System"/>
        <add namespace="System.Collections"/>
        <add namespace="System.Collections.Specialized"/>
        <add namespace="System.Configuration"/>
        <add namespace="System.Text"/>
        <add namespace="System.Text.RegularExpressions"/>
        <add namespace="System.Web"/>
        <add namespace="System.Web.Caching"/>
        <add namespace="System.Web.SessionState"/>
        <add namespace="System.Web.Security"/>
        <add namespace="System.Web.Profile"/>
        <add namespace="System.Web.UI"/>
        <add namespace="System.Web.UI.WebControls"/>
        <add namespace="System.Web.UI.WebControls.WebParts"/>
        <add namespace="System.Web.UI.HtmlControls"/>
      </namespaces>
    </pages>

    <!--customErrors mode="Off"/-->

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
      <error statusCode="403" redirect="NoAccess.htm" />
      <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>


  </system.web>
  <system.net>
    <mailSettings>
      <smtp from="XXX">
        <network host="XXX" password="XXX" userName="XXX"/>
      </smtp>

    </mailSettings>
  </system.net>
</configuration>
Avatar billede brynil Nybegynder
11. februar 2006 - 09:30 #7
Mht til sider hvor masterpage objekterne ikke vises kan jeg se nu, at det er for sider som er tilgængelige uden at logge ind. For alle andre sider vises masterpage som den skal, så det må være et spm om at rette i tilladelserne.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 09:31 #8
prøv med denne connectionstring. Du skal bare ændre navnet på dindatabasefil.mdf:
<remove name="LocalSqlServer"/>du kan bruge
<add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|dindatabasefil.mdf" providerName="System.Data.SqlClient"/>
Avatar billede brynil Nybegynder
11. februar 2006 - 09:38 #9
Der kommer GenericErrorPage.htm fejl. Har kun ændret 'dindatabasefil.mdf' til min egen.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 09:40 #10
sæt <customErrors mode="Off" defaultRedirect="GenericErrorPage.htm">
og se hvad fejl du får.
Avatar billede brynil Nybegynder
11. februar 2006 - 09:42 #11
Selvfølgelig, øjeblik!
Avatar billede brynil Nybegynder
11. februar 2006 - 09:45 #12
An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

..var hvad den sagde!

Skal du bruge resten?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 09:48 #13
er det sqlexpreess du bruger ?
kan du bruge connectionstring på din lokale maskine ?
Avatar billede brynil Nybegynder
11. februar 2006 - 10:02 #14
Ja, det er expressen.

Når jeg opretter websitet lokalt, er der ingen connectionstring, den ser ud til kun at eksistere i IIS/ASP.NET.

Jeg har fået oplyst flg. fra udbyderen: '..serverne *ikke* er sat op til SQL Express integrated security via ASP.NET..'.

Ligeledes oplyser de flg. connectionstring skal anvendes:

strConnect = _
    "Provider=SQLOLEDB.1;" &_
    "Data Source=(local);" &_
    "Initial Catalog=SQLBrugernavn;" &_
    "User ID=SQLBrugernavn;" &_
    "Password=SQLKodeord;"

Men det er jo til script som bruges til fx. grids i et bestemt kald fra en side, så jeg har ikke kunnet få det til at fungere.

Håber det siger dig mere end det siger mig :))
Avatar billede brynil Nybegynder
11. februar 2006 - 10:10 #15
Jeg mener, jeg har forsøgt at tilpasse ovennævnte connectionstring til hvad der skulle fungere i web.config, men uden held.

Den connectionstring jeg angiver i web.config ovenfor giver adgang til databasen, men visning af sider går som nævnt galt og kræver usr/pw til ftp-stedet (ikke sql-serveren).
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 10:12 #16
prøv med:
<connectionStrings>
    <remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=SQLBrugernavn;User Id=SQLBrugernavn;Password=SQLKodeord;"/>
  </connectionStrings>
Avatar billede brynil Nybegynder
11. februar 2006 - 10:17 #17
Den giver fejlen:

Exception Details: System.ArgumentException: Keyword not supported: 'provider'.
Avatar billede brynil Nybegynder
11. februar 2006 - 10:24 #18
Det var samme fejl jeg fik tidligere hvorfor jeg regnede med syntaksen skulle være anderledes for sqlexpress i web.config'en.

Men når jeg får forbindelse til databasen med den connectionstring jeg har i web.config, ligger problemet med oplysninger om urs/pw til ftp-serveren så ikke et andet sted end connectionstringen ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 10:25 #19
prøv med:
<connectionStrings>
    <remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=SQLBrugernavn;User Id=SQLBrugernavn;Password=SQLKodeord;"/>
  </connectionStrings>
Avatar billede brynil Nybegynder
11. februar 2006 - 10:31 #20
Det var bedre men giver samme problem med at når jeg vil se en side skal jeg først oplyse ftp-serverens usr/pw!

Kan det ligge i rollerne? Min web.config i App_Data ser nogenlunde således ud:

<configuration>
    <system.web>
        <authorization>
            <deny users="?" />
            <allow roles="sbr" />
            <deny roles="br" />
        </authorization>
    </system.web>
</configuration>
Avatar billede brynil Nybegynder
11. februar 2006 - 10:36 #21
Hov, der er en web.config i alle mine biblioteker der definerer adgangen. Men der er ingen angivelse af roller i web.config'en i roden.

Skal der ikke være det ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 10:44 #22
fjern lige alle de web.config filer i første omgang.
Avatar billede brynil Nybegynder
11. februar 2006 - 10:51 #23
Det er gjort, men så ser jeg slet ikke objekter som skulle være der efter login.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 10:52 #24
hvordan er adgangen til de objekter defineret ?
Avatar billede brynil Nybegynder
11. februar 2006 - 10:54 #25
Så vidt jeg ved, kun gennem rollerne. Jeg har ikke gjort noget aktivt endet end det!
Avatar billede brynil Nybegynder
11. februar 2006 - 10:55 #26
Men hvis jeg forsøger at følge din tankegang, skal jeg så ikke slå roller fra i web.config'en?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 10:59 #27
den bruger du logger på med er den tildelt alle roller ?
Avatar billede brynil Nybegynder
11. februar 2006 - 11:04 #28
Øhhh - har godt tænkt på det. Men jeg mindes ikke at have stødt på det spm. under oprettelsen af sitet og har ikke gjort noget ud af det da det jo fungerede fint nok lokalt med adgang til forskellige sider osv.

Kan jeg konstatere dit spm. et sted ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:07 #29
du kan bruger If(User.IsInRole("rolllenavn"))
den returnere en bool altså User.IsInRole("rolllenavn")
Avatar billede brynil Nybegynder
11. februar 2006 - 11:08 #30
dr_chaos, jeg håber du har tålmodighed til at hjælpe mig lidt længere igennem. Jeg vil gerne forøge points. Det er vist muligt at give max 500 mener jeg at have set og det vil jeg gerne give. :))
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:08 #31
hvis du finder den rolle din bruger har så giv adgang til alle steder for den rolle.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:10 #32
200 for et spørgsmål er maks :)
Avatar billede brynil Nybegynder
11. februar 2006 - 11:10 #33
Skal det så ske i Page_Load/Init på hver side ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:11 #34
Kan vi konstatere at din connectionstring virker nu ?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:11 #35
nej det var bare for at konstatere hvilken en rolle din bruger har.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:11 #36
hvis han har nogen.
Avatar billede brynil Nybegynder
11. februar 2006 - 11:18 #37
Connectionstring virker!

Sjovt nok har jeg ikke tænkt på hvilken af rollerne en bruger oprettes med når man laver en standard registrering. Det spørges der selvfølgelig ikke om under registreringen.

Men problemet ser ud til at blevet indsnævret til rollerne.

Hvis du mener at være nået til vejs ende så smider du bare et svar så takker jeg for hjælpen selvom jeg ikke nåede helt igennem. Men det var heller ikke spørgsmålets udgangspunkt :))
Avatar billede brynil Nybegynder
11. februar 2006 - 11:20 #38
Lige kort, kan man ændre rolle opsætning uden at skulle opdatere i databasen? Altså kun ændre i config filerne?
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:20 #39
problemet er at der nok slet ikke bliver tildelt nogle roller.
skal nok hjælpe dig lidt mere :)
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:21 #40
nej ikke umiddelbart.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:22 #41
du kan oprette roller ved at kalde Roles.CreateRole()
Og tilføje roller til en Bruger ved at kalde Roles.AddUserToRole.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:24 #42
den funktionalitet kan du indbygge i opret bruger side f.eks.
På den måde tilføjer du rollerne til brugeren og de gemmes i databasen.
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:32 #43
smider lige et svar :)
Avatar billede brynil Nybegynder
11. februar 2006 - 11:34 #44
Alle tiders!

Men, helt ærligt, så er ASP.NET dog så nyt for mig at jeg skal læse noget mere på lektien og jeg kan mærke at dine svar hurtigt kan blive perler for svin.

Jeg er godt tilfreds med det jeg har opnået så vidt og den hjælp du har givet.

jeg vender nok tilbage med flere spørgsmål når jeg har konsolideret min viden.

Tak for hjælpen dr_chaos ;))
Avatar billede dr_chaos Nybegynder
11. februar 2006 - 11:43 #45
hehe helt fint :)
jeg vil meget stærkt anbefale dig at kigge her:
http://weblogs.asp.net/scottgu/archive/2006/01/09/434925.aspx
Avatar billede brynil Nybegynder
11. februar 2006 - 12:20 #46
Takker, den kigger jeg på!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester