Jeg har nu sat SQL Server til at bruge Windows Only samt tilføjet ASPNET useraccount til SQL Server og tildelt den til den specifikke Database med SELECT rettigheder.
Min con string ser således ud:
Public Function GetConnection() As SqlConnection Dim oConnection As SqlConnection Try oConnection = New SqlConnection() oConnection.ConnectionString = "INITIAL CATALOG=Cat; DATA SOURCE=Server; Integrated Security=SSPI; Max Pool Size=75; Min Pool Size=5;" If oConnection.State <> ConnectionState.Open Then oConnection.Open() End If Return oConnection Catch exc As DataException Throw New DataException("Error i GetConnection", exc) Catch exc As Exception Throw New Exception("Error i GetConnection", exc) End Try End Function
samt tilføjede UISR_MakineNavn Guest brugeren, til min SQL Server og tilføjede den til pågældende database med de nødvendige rettigheder og så virkede det!
Trusted_Connection 'false' When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication. Recognized values are true, false, yes, no, and sspi (strongly recommended), which is equivalent to true. --- Det der normalt sker er, at dine IIS brugere kører som den lokale IUSR_<maskinnavn> bruger. For at de skal kunne bruge databasen 'direkte', skal SQL Server have brugeren ind (det har du gjort foroven). Ved at køre integreret sikkerhed/trusted connection/, skal de ikke angive password, da de jo kører som IUSR_..., som er 'valideret' af din Windows. Jeg ville tro at du nu kan fjerne <identity impersonate=true/>. Hele gruppen er <identity impersonate="true|false" userName="domain\username" password="password"/> (men min IIS er rusten og gammel). Så det du har nu, er nok Ok, men skalerer dårligt. Du har ihvertfald ikke nogen passwords ude og svømme... Impersonate bruger du til at få tingene til at køre som en helt anden bruger, og det kan være ret besværligt at få til at køre (og fejlfinde). Så bliver det hele: Bruger X kommer på dit site. Han bliver så til IUSR_... hos dig, og kan impersonate brugeren Y - hvis du absolut vil have folk til at køre som Y. Så hvis brugeren ender med at blive Y, skal Y have adgang til databasen...
Hvis det ikke virker uden impersonation skyldes det, at den 'effektive' bruger ikke er den jeg tror. Din fejl "Login failed for user 'NT AUTHORITY\NETWORK SERVICE'" efterfølges nok af 'not associated with a trusted connection'. Kører du med IIS, eller er det noget andet ASP.NET du vil køre?
Prøv at enable sql server authentication og sæt password for SA'en. Din connectionstring bliver så (istedet for trusted connection) ...uid=sa;pwd=ditpassword. Husk også at tilføje den ASPNET user som frameworket har oprettet. Jeg bruger selv SQLXML virtual directories (med port 1433 åben) hvilket gør det noget lettere at arbejde med en remote sql server. // Niels
Jeg giver først points nu, da jeg har siddet med min afsluttende eksamen.
Jeg deler points med Arne_v (20) og zapzap (80).
Det virker stadig ikke, hvis jeg fjerner impersonate.
Jeg har oprettet et lignende spm igen, i håb om at finde ud af noget.
Hygge hejsa
Synes godt om
Ny brugerNybegynder
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.