我在我的 ASP 项目中使用 C# 访问 LDAP 时遇到了一些麻烦。这是一个非常简单的示例,仅检查用户是否存在于我的目录服务中。
这是代码。函数 UserExists() 返回 false
我不完全确定我的 LDAP 查询是否会影响我的目录服务。(活动目录)
using System.DirectoryServices;
namespace UserManagement
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (UserExists("abc"))
lblUserExists.Text = "Found Username";
}
public static DirectoryEntry GetDirectoryEntry()
{
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://OU=Users,OU=Network Users,DC=domain,DC=org";
de.AuthenticationType = AuthenticationTypes.Secure;
return de;
}
public bool UserExists(String UserName)
{
DirectoryEntry de = GetDirectoryEntry();
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectClass=user) (cn=" + UserName + "))";
SearchResultCollection results = deSearch.FindAll();
return results.Count > 0;
}
}
}