代码模拟MOSS权限
如题,经常用到所以记录下来,免得找找麻烦 ヘ(-_-ヘ フフフフフ
1 「完全控制」(Full Control)权限
1.1 如果是小段代码,那么直接嵌套到SPSecurity.RunWithElevatedPrivileges里
代码示例:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//添加代码
});
1.2 如果是一个Void的Method的话,就要用到SPSecurity.CodeToRunElevated了。
从MSDN上剽窃的代码:ξ\(^。^ )))))
protected void Button1_Click(object sender, EventArgs e)
{
SPSecurity.CodeToRunElevated elevatedGetSitesAndGroups = new SPSecurity.CodeToRunElevated(GetSitesAndGroups);
SPSecurity.RunWithElevatedPrivileges(elevatedGetSitesAndGroups);
}
2 如果希望模拟某个用户的权限,那么可以使用UserToken
SPSite mySite=new SPSite("<SPSiteURL>");
SPUser user = mySite.RootWeb.SiteUsers["domain\\xiaoming"];
SPSite xiaomingLogonSite = new SPSite("<SPSiteURL>", user.UserToken);
3 察看是否具有查看网站列表项的权限(SPWeb,SPList,SPListItem等也拥有此方法。)
using (SPSite mySite = new SPSite(SPContext.Current.Site.Url))
{
SPWeb myWeb = mySite.allwebs["<SPWebURL>"];
bool isHavePermission = myWeb.DoesUserHavePermissions(SPBasePermissions.ViewListItems);
}
具体可以参考MSDN