Avatar billede julianmay Nybegynder
19. maj 2011 - 12:24 Der er 5 kommentarer og
1 løsning

Problem med integrated authentication (Active Directory) :(

Hej!

Jeg vi er ved at skrive et stykke software som skal spille op mod en SQL 2000 server med windows authentication. Alt ser ud til at være konfigureret korrekt, men jeg får denne fejl:

<i>Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.</i>

Begge maskiner (terminalserver og sql-server) er i samme domæne, brugeren programmet eksekveres af, er medlem af den gruppe der er lavet sql-login på.

Sql-login'et til security-gruppen bliver fint mappet op til en user i databasen.

Jeg kan udemærket køre Query-analyzer fra terminalserveren med windowsauthentication og forbinde til databasen - så det er kun i min connectionstring der er noget galt :,(

Hjælp!
Avatar billede julianmay Nybegynder
19. maj 2011 - 12:26 #1
min connectionstring ser sådan ud:
"Data Source=<<servernavn>>;Initial Catalog=<<database>>;Persist Security Info=SSPI;Integrated Security=true;Connection Timeout=4;"
Avatar billede julianmay Nybegynder
19. maj 2011 - 13:12 #2
Her får i lige fejlen i event-loggen også



Hændelsestype:    Fejl
Hændelseskilde:    ITF TechDocs
Hændelseskategori:    Ingen
Hændelses-id:    1
Dato:        19-05-2011
Klokkeslæt:        12:34:34
Bruger:        Ikke tilgængelig
Computer:    WTS1
Beskrivelse:
Fejl ved indlæsning af data! ( bruger: jum )

Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

  at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
  at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
  at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
  at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
  at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
  at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
  at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
  at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
  at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
  at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
  at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
  at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
  at System.Data.SqlClient.SqlConnection.Open()
  at ITFTechDocs.Controller.DBFacade.FindesSystem(Guid kundeGUID)
  at ITFTechDocs.Controller.DBFacade.AabenFraDB(Guid kundeGUID)
  at ITFTechDocs.Controller.TDSystem.LoadData(Guid kundeGuid)
Avatar billede janus_007 Nybegynder
19. maj 2011 - 23:00 #3
Jeg har for mange mange år siden siddet og bakset med selvsamme problem tror jeg nok, kan sku dårligt huske det. Det var noget med en domain account, delegation, ACL og AD'et, en lang og besværlig opsætning som jeg tilsidst opgav :-(

Hvis du havde siddet med en webapp, ville jeg smide flg. ind i web.config.
<identity impersonate="true" userName="domain\username" password="********"/>

I en winapp skal du nok have gang i : System.Threading.Thread.CurrentPrincipal = new
WindowsPrincipal(impersonatedWindowsIdentity);

måske kan du blive klogere her.
http://blogs.msdn.com/b/saurabhkv/archive/2008/05/29/windowsidentity-impersonation-using-c-code.aspx
Avatar billede julianmay Nybegynder
20. maj 2011 - 23:20 #4
Tak for tippet - Jeg prøver at se om det gør en forskel at "være en anden"

Jeg prøvede at køre programmet direkte på domænekontrolleren fra domæneadministrator kontoen - samme problem. I Min optik betyder det at det ikke har noget at gøre med "untrusted domain", da man skulle mene at delegation/domain trusts osv. ikke er et emne når jeg sidder direkte på den primære DomainController - så jeg aner faktisk i bund og grund ikke hvad jeg leder efter her :S
Avatar billede julianmay Nybegynder
20. maj 2011 - 23:46 #5
Jeg satte lige en profiler på - mit program får slet ikke fat i sql-tjenesten! (ingen failed logon audit)
Nogen gode bud på hvorfor? Har tjekket at dns'en ser ok ud, bruger samme servernavn som når jeg åbner Query Analyzer, og den kører fint. 

>:|
Avatar billede julianmay Nybegynder
24. maj 2011 - 20:41 #6
Hmm - Jeg fiflede lidt med connectionstrengen (fuldt fqdn-navn på serveren og ændret "integrated security" til "trusted connection") men kunne ligepludselig ikke køre mit program i testmiljøet. Efter jeg (med administratorrettigheder) kopierede filerne ind i C:\Program files\undermappe\ og kørte det derfra fungerer det. Herefter fungerer det også for menig-bruger, og logons fremgår fint med brugernavn i query analyzeren. Umiddelbart tænker jeg at det er noget dns-relateret (det første) og det næste gætter jeg på er fordi dll-filerne ikke kunne registreres af menig bruger på terminalmiljøet.

Under alle omstændigheder, det virker nu!
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
Computerworld tilbyder specialiserede kurser i database-management

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