C没有绑定的LDAP搜索
本文关键字:LDAP 搜索 绑定 | 更新日期: 2023-09-27 18:24:05
我想问一下,是否有LDAP C#函数允许我在AD中进行搜索,而无需调用绑定?
我尝试使用LDP.exe,windows GUI LDAP工具来搜索AD,它正确地返回信息,但是,由于我没有访问AD的权限,我不知道与AD绑定所需的凭据。
我曾尝试使用LDIDFE.exe,windows命令行LDAP工具来搜索AD,它向我返回了错误和正确的信息。有人知道为什么吗?
我相信LDP.exe使用了C++函数ldap_search_s来执行搜索。有什么方法可以在C#中做到这一点吗?
谢谢。
如果您的程序在加入感兴趣域的计算机上运行,并且您只知道您的凭据,而不知道任何提升的帐户,那么您至少可以枚举各种对象,如用户帐户和安全组。
您可以使用AD powershell,也可以使用.net的System.DirectoryServices命名空间或System.DirectoryServices.AccountManagement命名空间。
System.DirectoryServices.AccountManagement命名空间是更新、更简单和首选的方法,除非您无法使用它,否则您可以使用System.DirectorySServices命名空间
以下示例复制自MSDN文章
PrincipalContext ctx = new PrincipalContext(ContextType.Machine);
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx,
IdentityType.SamAccountName,
"Guest");
if(usr != null)
{
if (usr.Enabled == false)
usr.Enabled = true;
usr.Save();
usr.Dispose();
}
ctx.Dispose();