指定されたドメインにそのようなユーザー名が存在するかどうかを確認して、LDAP ユーザーを検証する必要があります。このために、私はこのコードを使用しています-
DirectoryEntry entry = new DirectoryEntry("LDAP://" + strDomainController);
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "SAMAccountName=" + strUserName;
SearchResult result = searcher.FindOne();
return (result != null) ? true : false;
これは、プロジェクトでこの機能が必要な場合はいつでも参照して使用することを意図したクラス ライブラリのメソッドです。
これをテストするために、簡単なテスト アプリケーションを作成しました。テストは次のように行われます -
Console.WriteLine(MyClassLib.MyValidateUserMethod("UserName", "Domain",ref strError).ToString());
私が直面している問題は、testapp でテストすると正常に動作することですが、私のプロジェクトでは、同じ資格情報で同じメソッドを使用しようとすると、DirectoryEntry
オブジェクトが"System.DirectoryServices.DirectoryServicesCOMException"
例外をスローし、search.Filter
失敗して ex = {"Logon をスローします。失敗: 不明なユーザー名またはパスワードが正しくありません。\r\n"} 例外。
私はなりすましを試みましたが、それは役に立ちません。どういうわけか、同じ方法が mytestapp で正常に機能し、私のプロジェクトでは機能しません。これらのアプリケーションは両方とも、ローカルの開発マシンにあります。私は何が欠けていますか?何か案は?