C#获取用户是Active Directory中成员的组

时间:2014-09-09 18:11:39

标签: c# active-directory

我本质上不是程序员,所以我提前道歉:)我正在使用http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#39的代码片段,这真的很有帮助。我正在使用他的方法来获取用户组成员资格,它也需要他的AttributeValuesMultiString方法。我没有任何语法错误,但是当我通过Groups调用Groups("username", true)方法时出现以下错误:

  

System.DirectoryServices.dll中发生未处理的“System.Runtime.InteropServices.COMException”类型异常

我已经做了一些挖掘,但似乎没有真正回答为什么我收到这个错误。

提前致谢!

1 个答案:

答案 0 :(得分:5)

您应该查看System.DirectoryServices.AccountManagement(S.DS.AM)命名空间。在这里阅读所有相关内容:

基本上,您可以定义域上下文并轻松在AD中查找用户和/或组:

// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
    // find a user
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

    if(user != null)
    {
       // get the user's groups
       var groups = user.GetAuthorizationGroups();

       foreach(GroupPrincipal group in groups)
       {
           // do whatever you need to do with those groups
       }
    }

}

新的S.DS.AM让您可以轻松地与AD中的用户和群组一起玩!