我正在使用下面的代码来检查给定的用户是否属于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 ctxuserPrincipalgroupPrincipal

10-06 01:53