Active Directory用户组成员身份GroupPrincipal
我正在尝试使用GroupPrincipal
( System.DirectoryServices.AccountManagement
命名空间的一部分)来填充类型字符串列表,因此我可以检查用户是否是Active Directory组的成员。 这是我到目前为止编写的编辑类:
public class ActiveDirectoryMembership { private PrincipalContext context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName); private List GroupName {get;set;} public ActiveDirectoryMembership() { //Code snipped - this part returns a list of users populateGroups(); } private void populateGroups() { GroupPrincipal SearchGroup = GroupPrincipal.FindByIdentity(context, "Group Name"); GroupName = new List(); foreach (UserPrincipal p in GroupName.GetMembers()) { GroupName.add(p.SamAccountName); } }
那么,我哪里错了?
提前致谢 :)
您的代码修改工作(我做了测试以确保):
private static readonly string DomainName = "domaincontrollercomputer.domain.com"; private static readonly string DomainContainer = "DC=DOMAIN,DC=COM"; private static readonly string ADGroupName = "AD Group Name"; private List GroupName {get;set;} private void populateGroups() { using (var ctx = new PrincipalContext(ContextType.Domain, DomainName, DomainContainer)) { using (var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, ADGroupName)) { GroupName = new List (); foreach (var member in grp.GetMembers()) { GroupName.Add(member.SamAccountName); } } } }
我认为你的方法中有一个简单的拼写错误 – 你将组主体变成了SearchGroup
(检查NULL ,顺便说一句!!)然后你就抓住了GroupName
的成员?
试试这个:
private void populateGroups() { GroupPrincipal SearchGroup = GroupPrincipal.FindByIdentity(context, "Group Name"); if(SearchGroup != null) { GroupName = new List(); // call 'GetMembers' on 'SearchGroup' here!! foreach (UserPrincipal p in SearchGroup.GetMembers()) { GroupName.add(p.SamAccountName); } } }
- 如何解决“服务器不支持控件。 控制很关键。“Active Directory错误
- C# – 在活动目录中查找用户管理器
- 在.NET中创建Active Directory用户(C#)
- 对于未知用户,ValidateCredentials返回true?
- 如何知道DirectoryEntry是用户还是组?
- UserPrincipal.FindByIdentity中的.NET 4.5错误(System.DirectoryServices.AccountManagement)
- 如何在C#Web应用程序中找到用户的Active Directory显示名称?
- 检测使用ASP.NET应用程序登录计算机的用户
- 使用C#/ Powershell设置Active Directory“安全身份映射”/“名称映射”不会添加到正确的“存储”