0

以下のコードを使用して、LDAP に対してユーザーを認証しようとしています。

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, ldap, "username", "password"))
{
    bool success = context.ValidateCredentials(useralias, password);
}

LDAP を「LDAP://zyorg:389/」として使用すると、PrincipalContext の初期化時に「サーバーに接続できません」というエラーが表示されます。

LDAP を "zyorg:389/" として使用すると、正しい資格情報を使用すると、その手順が成功し、成功は "true" になりますが、ValidateCredentails が実行されると、"LDAP サーバーが利用できません" という 2 つの例外が "IntelliTrace" に表示されます。このメソッドに間違った資格情報を提供すると、false を取得しても、「IntelliTrace」に記録された同じ例外が発生します。

問題を解決したり、何が起こっているかをデバッグしたりするためのポインタは高く評価されます。

4

1 に答える 1

0

認証する場合は、PrincipalContext を使用して次の手順を使用できます。

using(var context = new PrincipalContext(ContextType.Domain, "mydomain", "mydomain\serviceAcct", "serviceAcctPass")) 
{
     //Username and password for authentication.
     return context.ValidateCredentials(username, password);      
}

" serviceAcct" = ディレクトリ ルックアップのアクセス許可を持つドメイン ユーザー内のアカウント。" serviceAcctPass " = そのサービス アカウントのパスワード。私が言ったように、テストのために、独自のユーザー/パス コンテキストで試すことができます。

また、提供されたユーザー名が「ドメイン\ユーザー名」または「ユーザー名@ドメイン」のいずれかの形式であることを確認してください。

于 2015-08-11T05:58:46.737 に答える