【发布时间】:2015-09-26 15:32:15
【问题描述】:
如何从 Active Directory Server 中找到当前用户组
参考截图网址。 http://i.stack.imgur.com/v1dww.png
对于用户名“palani”,组是Administrators。
如何从 Active Directory 服务器获取它
【问题讨论】:
标签: c# active-directory
如何从 Active Directory Server 中找到当前用户组
参考截图网址。 http://i.stack.imgur.com/v1dww.png
对于用户名“palani”,组是Administrators。
如何从 Active Directory 服务器获取它
【问题讨论】:
标签: c# active-directory
如果您使用的是 .NET 3.5 及更高版本,则应查看 System.DirectoryServices.AccountManagement (S.DS.AM) 命名空间。在此处阅读所有相关信息:
基本上,您可以定义域上下文并在 AD 中轻松找到用户和/或组:
// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
// find currently logged in user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "palani");
if(user != null)
{
foreach(GroupPrincipal group in user.GetAuthorizationGroups().OfType<GroupPrincipal>())
{
Console.WriteLine("Group name: {0}", group.Name);
}
}
}
一个用户可以是任意数量的组的成员 - 对于给定的用户没有组 - 只有他/她所属的组的列表。
新的 S.DS.AM 让在 AD 中与用户和组一起玩变得非常容易!
【讨论】:
你可以试试这个:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain.com",
"CN=palani,OU=Department,DC=domain,DC=com",
"administrator",
"password");
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx,"palani");
if(usr!=null){
Console.WriteLine(Convert.ToString(usr.SamAccountName));
PrincipalSearchResult<Principal> group = usr.GetGroups();
foreach(Principal pr in group)
Console.WriteLine(pr.Name);
}
Console.Read();
【讨论】: