0
以下のコードで、特定のユーザーがグループに所属しているかどうかを確認しています。私は取得していますSPSecurity.RunWithElevatedPrivilegesでの不正な例外?
不正例外 (0x80070005と)
と私は理由を理解していませんか?私はSPSecurity.RunWithElevatedPrivileges
を使用しています、なぜそれが私にこの例外を与えているのですか?誰か私のヒント?前もって感謝します!
public bool IsUserInGroup(SPWeb web, string groupName, string user)
{
try
{
bool returnValue = false;
SPSecurity.RunWithElevatedPrivileges(() =>
{
if (web.Groups.OfType<SPGroup>().Where(g => g.Name == groupName).Count() > 0)
{
SPGroup spGroup = web.Groups[groupName];
if (spGroup.Users.OfType<SPUser>().Where(u => u.LoginName.Equals(user)).Count() > 0)
{
returnValue = true;
}
else
{
returnValue = false;
}
}
else
{
returnValue = false;
}
});
return returnValue;
}
catch (Exception exp)
{
Classes.Logs.Error.Log_Error("IsUserInGroup", "DocumentCenterItem.cs", exp.Message, DateTime.Now);
return false;
}
}
感謝をあなたの答えのために。ちょっとした小説です。あなたは '(SPWeb elevatedWeb ...)'を使わないでください。ウェブをそこに配置しないでください。代わりに 'SPWeb elevatedWeb = spSite.RootWeb'を使用してください。 https://gallery.technet.microsoft.com/office/SharePoint-Dispose-Checker-01da48e8からSPDisposerCheckツールをお勧めします –