利用RunWithElevatedPrivileges模拟管理员权限时慎用SPContext

 

WSS 3.0中我们使用:

可以提升代码的运行权限,实现模拟管理员身份的功能。

在RunWithElevatedPrivileges中不要使用SPContext.Current.Web,SPContext.Current.Site,SPControl.GetContextWeb(HttpContext.Current)之类的根据当前上下文得到当前的Web或者Site,根据这些方法得到的所有对象(包括从根据这些对象得到的List,ListItem等等对象)都是以当前 站登录用户权限运作的,即使是在RunWithElevatedPrivileges其运作权限也不会是管理员。

所以,如果要真正让在RunWithElevatedPrivileges中的代码以管理员权限正常运作的话,必须重新初始化相应的对象,比如:

这时候即使在提升权限的范围内运行,得到的也是当前 站登录帐户名,而不是管理员登录帐 。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年6月10日
下一篇 2015年6月10日

相关推荐