SharePoint 2010 权限提升-SPSecurity.RunWithElevatedPrivileges method (Microsoft.SharePoint)

来源:互联网 发布:涂子沛 大数据 编辑:程序博客网 时间:2024/05/21 15:05

这个方法的功能很强大-即使执行一段SharePoint Code的进程的Identity(所在进程的User)没有full control 权限,通过把你的代码放到这个方法中执行,可以让你的代码模拟fullcontrol权限(web Application的Identity)去执行,最终避免Access Denied的错误.

但是,这个方法的使用存在几个误区:

 1.这个方法必须在W3WP进程的上线文中才能执行,如部署到SharePoint上的WebPart中. 一个普遍的错误是把它放到一个Console Application中,这是不能起作用的.

 2.

想提升权限,SPSite(SPWeb)必须得在这个方法中重新创建出来,否则这个方法不起作用,还是按照当前user的权限去执行.

SPSecurity.RunWithElevatedPrivileges(delegate(){    using (SPSite site = new SPSite(this.Page.Request.Url.ToString()))    {        using (SPWeb thisWeb = site.OpenWeb())        {            // do something with thisWeb        }    }});

 

原创粉丝点击