C# 显示属于域用户的组
我有两个用户,一个在本地计算机上,一个在域上。C# 显示属于域用户的组,c#,asp.net,dns,active-directory,active-directory-group,C#,Asp.net,Dns,Active Directory,Active Directory Group,我有两个用户,一个在本地计算机上,一个在域上。user1&testdomain\user1 现在这两个用户都有不同的组 user1 = group1, group3 testdomain\user1 = group2, group4 现在我想显示这些组,我在显示user1的组时没有问题,但是我不能显示testdomain\user1的组 我的代码如下 DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.Machine
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);
}
其中completeesername=user1和testdomain\user1
有什么建议吗?如果您使用的是.NET 3.5或更高版本,请查看。这些课程非常容易使用。比如说,
PrincipalContext pc = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(pc, "johndoe");
var groups = user.GetAuthorizationGroups() // or user.GetUserGroups()
如果是其机器用户,则必须使用ContextType.machine
另外,请看一下这些文章,其中提供了一些相同的概述:
WinNT://提供程序仅用于向后兼容,并且仅适用于计算机本地帐户。如果要查询域帐户,必须使用LDAP://provider,而不是getAuthorizationGroups不起作用,我会得到错误(5),而get groups会给我一个值“domain Users”。请帮我谢谢..这是权限相关的问题-看看这些线程是否给你任何线索:。也许,您可以确保当前windows用户具有查询广告授权组的权限。