我本质上不是程序员,所以我提前道歉:)我正在使用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”类型异常
我已经做了一些挖掘,但似乎没有真正回答为什么我收到这个错误。
提前致谢!
答案 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中的用户和群组一起玩!