2016-05-04 2 views
0

Ich führe Code von Domäne DOMAIN1 aus. Es gibt eine unidirektionale Vertrauensstellung mit DOMAIN2. Ich möchte überprüfen, ob ein Benutzer in DOMAIN2 existiert. Wenn ich versuche, erhalte ich eine Ausnahme mit der Angabe "ungültiger Benutzername und Passwort". Ich nehme an, dass ich einem Benutzer, der in DOMAIN2 vorhanden ist, Anmeldeinformationen bereitstellen muss, um die Suche zu ermöglichen, aber wie kann ich das tun? und wie kann ich es beheben, so dass die Authentifizierung nicht benötigt wird (Zweiweg Vertrauen?)Überprüfen, ob der Benutzer in einer vertrauenswürdigen AD-Domäne vorhanden ist

 try 
     { 
      //this works find for a user in the current domain 
      PrincipalContext ctx1 = new PrincipalContext(ContextType.Domain, "DOMAIN1"); 
      UserPrincipal user1 = UserPrincipal.FindByIdentity(ctx1, "user1"); 
      GroupPrincipal group1 = GroupPrincipal.FindByIdentity(ctx1, "group1"); 
      bool ue1 = user1.IsMemberOf(group1); 


//this fails with invalid username/password but is a trusted domain 
      PrincipalContext ctx2 = new PrincipalContext(ContextType.Domain, "DOMAIN2"); 
      UserPrincipal user2 = UserPrincipal.FindByIdentity(ctx2, "user2"); 
      GroupPrincipal group2 = GroupPrincipal.FindByIdentity(ctx2, "group2"); 
      bool ue2 = user2.IsMemberOf(group2); 
     } 
     catch (Exception e) 
     { 
      string ex; 
      ex = e.Message; 
     } 

Antwort

0

Verwenden PrincipalContext constructor die einen Benutzernamen und ein Passwort akzeptiert.

PrincipalContext ctx1 = new PrincipalContext(ContextType.Domain, "DOMAIN1", "username", "password"); 

Wenn Sie keine Anmeldeinformationen weitergeben, dann muss Ihre Anwendung unter Anmeldeinformationen ausgeführt werden, die von beiden Domänen vertrauenswürdig eingestuft werden.

Wenn also DOMAIN1 DOMAIN2 vertraut, sollte Ihre Anwendung unter den Anmeldeinformationen auf DOMAIN2 ausgeführt werden.

Wenn DOMAIN2 DOMAIN1 vertraut, sollte Ihre Anwendung unter den Anmeldeinformationen für DOMAIN1 ausgeführt werden.

Wenn Sie das nicht tun können, dann, ja, eine Zwei-Wege-Vertrauen würde es lösen.

+0

Danke, ich werde es versuchen. Aber gibt es eine Möglichkeit, dies ohne Authentifizierung zu tun, d. H. Überprüfung DOMAIN1 von DOMAIN1 funktioniert gut und ich möchte nicht wirklich Anmeldeinformationen für DOMAIN2 bereitstellen müssen. Gibt es etwas, das auf dem AD eingerichtet werden kann, um dies zu ermöglichen? –

+0

Sie sagten, es gibt eine unidirektionale Vertrauensstellung. Welcher Weg ist es? Ist DOMAIN1 DOMAIN2 oder DOMAIN2 DOMAIN1 vertraut? –

+0

Ich aktualisierte meine Antwort zu erklären. –

Verwandte Themen