gpt4 book ai didi

c# - 获取给定 UserPrincipal 的组列表

转载 作者:太空狗 更新时间:2023-10-29 17:53:54 26 4
gpt4 key购买 nike

我想获取用户所在的组列表。

这是我的代码:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.ac.uk",   "DC=mydomain,DC=AC,DC=UK", "user", "password");

UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, "MyUser");

PrincipalSearchResult<Principal> results = user.GetGroups();

foreach(Principal p in results)
{
Response.Write(p.Name);
}

当我运行时,在 Response.Write(p.Name);

行出现以下错误

System.Runtime.InteropServices.COMException: The specified directory service attribute or value does not exist.

当我检查结果计数时,它返回 9,第一组是 DomainUsers

如何遍历列表中的所有 9 个组?谢谢。

以下是我得到的用户列表:

enter image description here

最佳答案

当省略 PrincipalContext 类中描述的 LDAP 容器属性时,运行代码的用户必须对默认的 User 容器(即 CN=Users,DC=yourDomain, DC=COM) 和 Computers 容器(即 CN=Computers,DC=yourDomain,DC=COM)。

如果用户没有所需的权限,您将收到以下错误消息:

The specified directory service attribute or value does not exist

  • ‘context.Container’ threw an exception of type ‘System.NullReferenceException’ string {System.NullReferenceException}

  • ((new System.Linq.SystemCore_EnumerableDebugView(groups)).Items[5]).Description’ threw an exception of type ‘System.Runtime.InteropServices.COMException’ string {System.Runtime.InteropServices.COMException}

关于c# - 获取给定 UserPrincipal 的组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10244297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com