【发布时间】:2012-04-23 02:46:59
【问题描述】:
我是新来的,所以请耐心等待我的解释。 我目前的任务是创建这个 AD 门户登录页面,用户必须在其中输入他们的用户 ID 和密码。
但是,当我在网上进行了很多搜索时,我发现无法同时使用 UserID 和 Password 来验证用户身份,因为 SAMAccountName 只需要 UserID。
这里的事情是我必须验证的用户不是我用于 LDAP 连接登录的用户。 LDAP 连接将始终使用相同的管理员 ID 和密码,而我必须验证的用户是不同的用户。
网络上显示的大多数示例都说明 LDAP 用户 ID 和 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;
}
【问题讨论】:
标签: c# login active-directory directoryservices