1

此代码不适合:

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

1 回答 1

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)
{
  // ...
}
于 2012-04-11T08:06:41.460 回答