C#获取用户在Active Directory中所属的组
本文关键字:Directory 获取 用户 Active | 更新日期: 2023-09-27 18:21:26
我天生就不是程序员,所以我提前道歉:)我使用的是http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#39这真的很有帮助。我正在使用他的方法来获取用户组成员资格,这也需要他的AttributeValuesMultiString
方法。我没有任何语法错误,但当我通过Groups("username", true)
调用Groups
方法时,我会得到以下错误:
System.DirectoryServices.dll 中发生类型为"System.Runtime.InteropServices.COMException"的未处理异常
我已经做了一些挖掘,但似乎没有什么能真正回答我为什么会出现这个错误。
您应该签出System.DirectoryServices.AccountManagement
(S.DS-AM)命名空间。点击此处阅读:
- 在.NET Framework 3.5中管理目录安全主体
- System.DirectoryServices.AccountManagement上的MSDN文档
基本上,您可以定义域上下文,并在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中与用户和组一起玩变得非常容易!