現在、AD に対してユーザーを認証するために Directory Searcher を使用しています。
DirectoryEntry adsEntry = new DirectoryEntry(ConfigurationManager.AppSettings["ADConnectionString"], username, password, System.DirectoryServices.AuthenticationTypes.Secure);
DirectorySearcher adsSearcher = new DirectorySearcher(adsEntry);
adsSearcher.Filter = "(sAMAccountName=" + _userName + ")";
SetPropertiesToLoad(ref adsSearcher);
SearchResult adsSearchResult = adsSearcher.FindOne();
Logger.Debug("After adsSearcher.FindOne() success");
if (!ExtractPropertiesReceivedFromAD(adsSearchResult, ref emailAddress, ref _name, username, ref errorMessage))
return false;
これは多くの AD セットアップで正常に機能していますが、最近、AD の 1 つが接続を許可していないことに遭遇しました。
私のクライアントは、LDAP 認証が整っていると言っているので、サービス アカウントの資格情報を提供しないと AD に直接クエリを実行できません。
したがって、この場合、LDAP を使用して AD に接続するには、1 つの資格情報が必要です。それを投稿して、ユーザー ID を検証するには、自分のユーザー名/パスワードが必要です。
DirectorySearcherでこのような状況にどのように対応できますか?