此代码不适合:
web.IsCurrentUserMemberOfGroup(web.Groups["Namegruop"].ID);
您需要区分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)
{
// ...
}