我已成功通过代码将用户添加/分配到组,并且通过Ldap Admin检查时可以看到该用户。但是,当我尝试查询用户角色时,找不到通过代码添加/分配的新添加/分配的角色。
如果我通过客户端添加/分配新用户角色并运行搜索查询,则可以找到新添加的用户角色。不知道要获取新添加的角色该怎么做,或者不确定该角色是否需要首先激活。
如何检索新分配的用户角色。
该组的树
添加用户的代码
try
{
var _AttributeModification = new DirectoryAttributeModification
{
Name = "member",
Operation = DirectoryAttributeOperation.Replace,
};
_AttributeModification.Add(DistinguishedName);
var _response = (ModifyResponse)con.SendRequest(
new ModifyRequest
{
DistinguishedName = groupName,
Modifications = { _AttributeModification }
});
Console.WriteLine(_response.ResultCode);
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex);
throw ex;
}
搜索用户角色的代码
SearchRequest request = new SearchRequest("", "(&(objectClass=person)(mail=mymail))", 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;