0

ADSIプロバイダーを使用してC#クライアントからADAMインスタンスにバインドしています。バインドが失敗すると、失敗を示す一般的なエラー状態が返されます。トラフィックのネットワークトレースを見ると、ADAMインスタンス自体が、この認証が失敗した理由を示す拡張エラー情報をクライアントに送り返していることがわかりますが、ADSIプロバイダーはこの拡張情報を破棄し、事実を提供しているようです。バインドが失敗したこと。

たとえば、バインドに失敗すると、常に値8007052Eを含むErrorCode属性を指定してCOMExceptionがスローされます。ネットワークトレースを見ると、LDAPが返送する失敗には複数の理由があり、パスワードの有効期限、アカウントの無効化、パスワードの無効、ユーザーが存在しないなどのエラーが含まれる可能性があります。

ADSIまたはCOMExceptionオブジェクトを使用してこの拡張エラー情報を取得する方法はありますか?そうでない場合、この情報を取得できる誰かが使用した他の.NETプロバイダーはありますか?

4

1 に答える 1

0

回答がないので、回避策を使って自分で回答します。

LDAP呼び出しの特定の戻りコードと戻りデータに依存する代わりに、バインドが失敗した場合にアカウントで追加の調査を実行できるサービスアカウントを設定しました。たとえば、user1のバインドが失敗した場合、サービスアカウントでバインドし、user1アカウントにクエリを実行し、アカウント属性を読み取ってバインドが失敗した理由をさらに特定し、その情報をエンドユーザーに返します。

于 2010-05-17T13:33:17.353 に答える