得到一个用户名,我怎么会去写的LDAP查询将返回所有组用户中的一员?LDAP查询列出所有组用户是的成员?
3
A
回答
4
你在.NET 3.5?
如果是这样,看看这个优秀的MSDN文章Managing Directory Security Principals in the .NET Framework 3.5它显示了在.NET 3.5的用户和组管理的新功能。
在这种情况下,你需要一个主要方面(例如,您的域名):
PrincipalContext domainContext =
new PrincipalContext(ContextType.Domain, "YourDomain");
,然后你可以很容易地找到用户:
UserPrincipal user = UserPrincipal.FindByIdentity(principalContext, "username");
和“UserPrincipal”对象有称为“GetAuthorizationGroups”的方法,其返回用户所属的所有组:
PrincipalSearchResult<Principal> results = user.GetAuthorizationGroups();
// display the names of the groups to which the
// user belongs
foreach (Principal result in results)
{
Console.WriteLine("name: {0}", result.Name);
}
P retty容易,呵?
它在.NET很多工作3.5之前,或者在其他语言(PHP,德尔福等)的“直” LDAP。
马克
1
这里是另一种方式来获得组信息:
确保您的System.DirectoryServices添加引用。
DirectoryEntry root = new DirectoryEntry("LDAP://OU=YourOrganizationOU,DC=foo,DC=bar");
DirectoryEntry user = GetObjectBySAM("SomeUserName", root);
if (user != null)
{
foreach (string g in GetMemberOf(user))
{
Console.WriteLine(g);
}
}
以下方法获取用户条目并返回一个字符串列表,它是用户所属的组。
public List<string> GetMemberOf(DirectoryEntry de)
{
List<string> memberof = new List<string>();
foreach (object oMember in de.Properties["memberOf"])
{
memberof.Add(oMember.ToString());
}
return memberof;
}
public DirectoryEntry GetObjectBySAM(string sam, DirectoryEntry root)
{
using (DirectorySearcher searcher = new DirectorySearcher(root, string.Format("(sAMAccountName={0})", sam)))
{
SearchResult sr = searcher.FindOne();
if (!(sr == null)) return sr.GetDirectoryEntry();
else
return null;
}
}
相关问题
- 1. LDAP查询列出某个组的所有用户
- 2. 组群成员ldap查询
- 3. 查询ldap检索组用户是(在sharepoint中)的成员
- 4. 如何列出ldap组的所有组成员?
- 5. Ldap查询特定于某个组的所有成员
- 6. 查询LDAP组的其他域成员
- 7. 递归查询LDAP组成员资格
- 8. 检查用户是否为组的成员(ldap)
- 9. LDAP:检查用户是否为组的成员
- 10. LDAP Perl脚本查看用户是什么组的成员
- 11. LDAP查询,检索用户有权访问的所有组
- 12. 如何编写LDAP查询以测试用户是否为组的成员?
- 13. POWERSHELL:列出特定AD OU组中的所有用户/成员
- 14. 是否有用户的LDAP标准组成员身份属性?
- 15. 从LDAP查询用户组
- 16. 用于检查属性和组成员资格的LDAP查询
- 17. C#LDAP查询检索组织单位中的所有用户
- 18. 使用LDAP显示特定组的所有嵌套组成员?
- 19. LDAP用户在WebSphere嵌套组成员
- 20. LDAP - 列出特定组中的所有用户
- 21. 春天LDAP,检查用户的成员指定的组
- 22. 获取Ldap上的所有成员
- 23. 如何查询所有组和组成员的Active Directory?
- 24. 与子域的组成员的LDAP查询
- 25. 查询用户是否为组的成员
- 26. LDAP:获取组的成员
- 27. LDAP查询以显示所有具有嵌套组的组
- 28. 列出组中的用户LDAP python
- 29. PHP LDAP查询以获取特定安全组的成员
- 30. 列出来自指定群组的成员的所有群组
伟大的作品!非常感谢。 – Donut 2009-09-08 13:37:35