2012-04-04 19 views
0

ActiveDirectoryサーバーに(いくつかの資格情報を使用して)PrincipalContextを接続している場合は、ValidateCredentialsメソッドを呼び出して、 PrinicapContextの接続に使用されている資格情報とは異なる他のユーザー名/パスワードのペア)。PrincipalContext.ValidateCredentialsと同じだ​​が、LdapConnection(AD非固有)を使用する方法

私は基本的に同じことをしたいと思いますが、LdapConnectionとします。私はLdapConnectionを正常に接続し、openLDAPサーバーにバインドしました。今度は別の資格情報のセットを検証したいと思います。私はこれらの資格情報が上記のようにユーザ名&パスワードペアの代わりに識別名&パスワードペアである必要があります。それはいいです。

一時的な2番目のLdapConnectionを作成し、2番目の資格情報セットでバインドして検証するとします。

これを行うより良い方法はありますか?特に、既存のLdapConnectionを使用して他の資格情報を検証/認証する方法はありますか? Btw、私はこれをC#4.0にしています。

答えて

0

アプリケーションコードは、既存の接続(LDAPv3のみ)の認証状態を変更することで、資格情報を検証できます。このプロセスは、bindrequestを送信し、サーバーからの応答を調べることによって実行されます。サーバーからのバインド応答の結果コードが0である場合、資格情報は正確であり、アカウント(識別名によって識別される)は使用可能です。バインド応答の結果コードがゼロでない場合、エラーが発生しました。資格証明が有効でないか、識別名が存在しないか、識別名に関連付けられたアカウントが無効になっているか、その他のエラーが考えられます。

これは既存の接続を使用して行うことも、アプリケーションは新しい接続を確立して新しい接続にバインド要求を送信することもできます。

+0

ありがとう、私はLDAPv3を使用しています。私は、既存の接続の認証状態を変更することなく、2番目の資格情報を検証したいと思っています。私は悪い信任状の問題に遭遇していません。私が認証状態を変更する既存の接続の2番目の認証情報でバインドする場合。 PrincipalContextの例では、接続の認証状態を変更することなく、既存の接続で2番目の資格情報を検証できます。バインド要求は資格情報を検証する唯一の方法ですか?もしそうなら、私は2番目の接続を作成します。 –

+0

はい、資格情報を検証するためにバインド要求を使用します。 –

関連する問題