如何检索或获取所有新分配的用户角色/组?

时间:2019-08-04 17:30:18

标签: c# ldap usergroups

我已成功通过代码将用户添加/分配到组,并且通过Ldap Admin检查时可以看到该用户。但是,当我尝试查询用户角色时,找不到通过代码添加/分配的新添加/分配的角色。

如果我通过客户端添加/分配新用户角色并运行搜索查询,则可以找到新添加的用户角色。不知道要获取新添加的角色该怎么做,或者不确定该角色是否需要首先激活。

如何检索新分配的用户角色。

该组的树

enter image description here

添加用户的代码

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;

0 个答案:

没有答案