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