我正在使用下面的代码来检查给定的用户是否属于AD中的通讯组。
static bool IsUserMemberOf(string userName, string groupName)
{
using (var ctx = new PrincipalContext(ContextType.Domain))
using (var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, groupName))
using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, userName))
{
return userPrincipal.IsMemberOf(groupPrincipal);
}
}
我正在用上述值
IsUserMemberOf("domain\\username","domain\\groupname")
调用上述方法但是我看到一个空指针异常,因为
groupPrincipal
具有空值。在这方面有帮助吗?
最佳答案
只是意味着:
groupPrincipal = GroupPrincipal.FindByIdentity(ctx, groupName))
返回空指针,因为您的域中不存在您的组。您只需要测试var
ctx
,userPrincipal
和groupPrincipal
。