【发布时间】:2019-07-31 12:33:53
【问题描述】:
我可以搜索用户并仅找到用户所属的组。现在我想返回所有组/角色并将用户分配给特定组/角色。
DirectoryEntry 和 PrincipalContext 在我的情况下不起作用,我已经尝试了好几天。
这是我用于搜索用户组/角色的工作代码,运行良好。
- 如何获得所有组/角色?
- 并将用户添加到组/角色
Container = “ou=containername,ou=xx,ou=xx,O=xxxxx”
Domain = “mydomain.com”
group = ou=groups,ou=containername,ou=xx,ou=xx,O=xxxx
List<string> roles = new List<string>();
SearchRequest request = new SearchRequest("", "(&(objectClass=person)(mail=myusername))", System.DirectoryServices.Protocols.SearchScope.Subtree);
SearchResponse response = (SearchResponse)con.SendRequest(request);
if (response.Entries.Count == 0)
{
return null;
}
else
{
foreach (SearchResultEntry entry in response.Entries)
{
if (entry.Attributes["member"] != null)
{
roles = (entry.Attributes["member"].GetValues(typeof(string))).ToArray().Select(r => r.ToString()
.Substring(r.ToString().IndexOf("cn=") + 3,
r.ToString().IndexOf(",") - 3))
.ToList();
}
}
}
return roles;
【问题讨论】:
-
您使用的是 Active Directory 还是其他 LDAP 提供程序?
-
我正在使用 LDAP("LDAP://")。连接已经建立,因此我能够获得链接到特定用户的角色/组。
-
对,但是服务器是什么?活动目录、OpenLDAP 等?我问是因为 AD 与其他 LDAP 服务器相比有其自身的怪癖。
-
这是一个私有 LDAP(公司 LDAP)xxxxxxxx.com:636 我不确定我是否已经回答了你的问题。
-
否 :) LDAP 只是一种协议——一种通信的“语言”。我想知道服务器上有什么软件。但没关系。我会尽量回答。
标签: c# ldap ldap-query