代码模拟MOSS权限

如题,经常用到所以记录下来,免得找找麻烦 (-_-ヘ フフフフフ

 

1       「完全控制」(Full Control)权限

1.1      如果是小段代,那直接嵌套到SPSecurity.RunWithElevatedPrivileges

代码示例:

SPSecurity.RunWithElevatedPrivileges(delegate()

{

//添加代

});

1.2      如果是一个VoidMethod的话,就要用到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

http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

 

 

 

posted on 2009-04-27 09:34  阿米巴原虫  阅读(497)  评论(0编辑  收藏  举报