私はここで初めてなので、私の説明で我慢してください。私は現在、ユーザーがユーザー ID とパスワードを入力する必要があるこの AD ポータル ログイン ページを作成する任務を負っています。
しかし、オンラインで多くの検索を行った結果、SAMAccountName には UserID のみが必要なため、UserID とパスワードの両方でユーザーを認証する方法がないことがわかりました。
ここで重要なのは、認証する必要があるユーザーが、LDAP 接続のログインに使用するユーザーではないということです。LDAP 接続は常に同じ管理者 ID とパスワードになりますが、認証する必要があるユーザーは異なるユーザーです。
Web 上に示されているほとんどの例は、LDAP UserID と SAMAccountName が同じユーザー ID を使用していることを説明しています。しかし、それは私の状況には当てはまりません。
したがって、私は尋ねたいです。SAMAccountName を使用してユーザーのユーザー ID とパスワードを認証することはできますか? ここにいるほとんどの人に比べて私は経験豊富なプログラマーではないので、コード例を提供できることを願っています。ありがとう。
public SearchResult GetADUser(string UserID, string Password)
{
SearchResult results;
try
{
DirectoryEntry de = GetDirectoryObject(CommonConstant.LDAP_CONNECTION_STRING);
de.Username = CommonConstant.AD_ADMIN_ID;
de.Password = CommonConstant.AD_ADMIN_Password;
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectClass=user)(objectCategory=person)(samaccountname=" + UserID + "))";
deSearch.SearchScope = SearchScope.Subtree;
results = deSearch.FindOne();
}
catch (Exception ex)
{
throw new Exception(String.Format("GetADUser() returned {0}, \"{1}\"", ex.StackTrace, ex.Message));
}
return results;
}