代码模拟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

 

 

 

转载于:https://www.cnblogs.com/Kenr/archive/2009/04/27/1444296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值