c# - 显示属于域用户的组

标签 c# asp.net dns active-directory active-directory-group

我有 2 个用户,一个在本地机器上,一个在域上。: user1 & testdomain\user1

现在这两个用户有不同的组

user1 = group1, group3

testdomain\user1 = group2, group4

现在我想显示这些组,显示user1组没问题,但我无法显示testdomain\user1组。

我的代码如下。

DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry user = AD.Children.Find(completeUserName, "user");
object obGroups = user.Invoke("Groups");

foreach (object ob in (IEnumerable)obGroups)
{
    // Create object for each group.
    DirectoryEntry obGpEntry = new DirectoryEntry(ob);
    listOfMyWindowsGroups.Add(obGpEntry.Name);
}

其中 completeusername = user1 和 testdomain\user1

有什么建议吗?

最佳答案

如果您使用的是 .NET 3.5 或更高版本,请查看 System.DirectoryServices.AccountManagement .这些类很容易使用。例如,

PrincipalContext pc = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(pc, "johndoe");
var groups = user.GetAuthorizationGroups()  // or user.GetUserGroups() 

如果它的机器用户那么你必须使用 ContextType.Machine

另请查看这些文章,其中提供了一些相同的概述:

http://anyrest.wordpress.com/2010/06/28/active-directory-c/

http://msdn.microsoft.com/en-us/magazine/cc135979.aspx#S5

关于c# - 显示属于域用户的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4457375/

相关文章:

c# - Blazor 中的 ElementReference 如何工作?

c# - 如何获取托管 asp.net 应用程序的计算机的 HostName、Ip

c# - 如何提供模型以供查看?

linux - 主机:解析/etc/resolv.conf 失败

c# - 帮助对 Except 扩展方法进行新的覆盖

c# - 我的自定义用户控件在工具箱中显示为灰色

C# 显示 Windows 窗体

c# - 如何正确地将 JSON 字符串反序列化为包含另一个类的嵌套列表的类

javascript - Google Analytics 计算我所有子域的访问次数,但将我的子域列为引荐

eclipse - 无法验证 Weblogic 域”- Oracle Enterprise Pack