【发布时间】:2019-07-11 16:58:34
【问题描述】:
我想从下面的代码中找到主要组
我可以获得一个用户的所有组,但哪个是主要组?
string primaryGroupName = String.Empty;
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
using (UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "userName"))
{
foreach (Principal p in user.GetGroups())
{
WriteLog("PrimaryGroup Name(s)???:");
WriteLog(p.Name);
primaryGroupName = p.Name;
}
}
}
上面的代码返回的是……
域用户
管理员
架构管理员
企业管理员
域管理员
..还有更多
什么是主要组?
【问题讨论】:
-
您可以获取主要组 id,但我不知道如何从那里获得组的名称。
var userEntry = user.GetUnderlyingObject() as DirectoryEntry; var primaryGroupId = userEntry.Properties["primaryGroupID"].Value; -
@Amy 谢谢,这似乎给了我一个 id(即 513)现在我如何使用 id 来获取组名?
-
我说我不知道该怎么做,对不起。
-
SID 的最后一个数字是否可能是“id”? sid=S-1-5-21-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxx-513
标签: c# active-directory principalcontext