いくつかの方法。SharePointグループには、グループ所有者のみがメンバーシップの詳細を表示できるようにするか、全員がメンバーシップの詳細を表示できるようにするオプションがあります。すべてが許可されている場合はセキュリティ制限を取得できません。それ以外の場合は、RunWithElevatedPrivilegesを取得し、その中で使用するSPSiteとSPWebの新しいインスタンスを取得する必要があります。
以下はオプションであると言われています:
private Boolean isUserInGroup(SPGroup oGroupToTestFor,String sUserLoginName)
{
Boolean bUserIsInGroup = false;
try
{
SPUser x = oGroupToTestFor.Users[sUserLoginName];
bUserIsInGroup = true;
}
catch (SPException)
{
bUserIsInGroup = false;
}
return bUserIsInGroup;
}
別の方法は
private Boolean isUserInGroup(SPGroup oGroupToTestFor, String sUserLoginName)
{
Boolean bUserIsInGroup = false;
SPUser oUser =null;
try{
oUser = SPContext.Current.Web.AllUsers[sUserLoginName];
}
catch{}
if(oUser!=null){
foreach (SPUser item in oGroupToTestFor.Users)
{
if (item.UserToken == oUser.UserToken)
{
bUserIsInGroup = true;
break;
}
}
}
return bUserIsInGroup;
}