2016-05-04 15 views
0

ドメインDOMAIN1のコードを実行しています。 DOMAIN2には一方向の信頼が設定されています。 DOMAIN2のユーザーが存在するかどうかを確認したいと思います。試してみると「無効なユーザー名とパスワード」という例外が出ます。私はそれを取るDOMAIN2に存在するユーザーに資格情報を提供して検索を許可する必要がありますが、どうすればいいですか?その認証が必要とされていないので、私はそれを修正する方法(双方向の信頼を?)ユーザーが信頼できるADドメインに存在していることを確認してください

 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; 
     } 

答えて

0

は、ユーザー名とパスワードを受け入れるPrincipalContext constructorを使用してください。

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

資格情報を渡したくない場合は、両方のドメインで信頼されている資格情報でアプリケーションを実行する必要があります。

DOMAIN1がDOMAIN2を信頼する場合、DOMAIN2の認証情報でアプリケーションを実行する必要があります。

DOMAIN2がDOMAIN1を信頼する場合、アプリケーションはDOMAIN1の資格情報で実行する必要があります。

できない場合は、双方向の信頼で解決します。

+0

ありがとう、私は試してみます。しかし、認証を必要とせずにこれを行う方法があります。つまり、DOMAIN1のDOMAIN1が正常に動作していることを確認して、DOMAIN2の認証情報を提供する必要はありません。これを可能にするために広告に設定できるものはありますか? –

+0

一方的な信頼があると言いました。それはどちらですか? DOMAIN1はDOMAIN2を信頼していますか、DOMAIN2はDOMAIN1を信頼していますか? –

+0

解説を更新しました。 –

関連する問題