如何检查CurrentUser是否是AD组的成员?

时间:2012-04-11 07:30:40

标签: sharepoint

此代码不适合:

web.IsCurrentUserMemberOfGroup(web.Groups["Namegruop"].ID);

1 个答案:

答案 0 :(得分:3)

您需要区分 AD安全组成员身份和 SharePoint组成员身份。

要检查AD安全会员资格,您可以使用System.Security.Principal.WindowsPrincipal.IsInRole。您不需要使用SharePoint API:

using(WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
  WindowsPrincipal p = new WindowsPrincipal(identity);
  if (p.IsInRole("DOMAIN\\GroupName")) // Alternative overloads with SecurityIdentifier available
  {
    // ...
  } 
}

要检查当前用户是否是SharePoint组的成员,您可以使用SharePoint API:

SPWeb web = // ...
SPGroup group = web.SiteGroups["GroupName"];
if (group.ContainsCurrentUser)
{
  // ...
}