这个方法的功能很强大-即使执行一段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 } } });