禁止提示 访问被拒绝的 消息
SPWeb web = SPContext.Current.Web;
web.Site.CatchAccessDeniedException = false;
因为模拟权限时,被模拟的线程和当前线程的SPContext.Current不是同一个,
如果你模拟在SPContext.Current.Web下边执行代码,就有可能得到访问被拒绝
的错误。
所以 新开一个SPWeb来模拟 将会解决些问题,这个错误曾经让很多人花很多时间解决,所
以作者拿出来分享,我也转在这里。
SPWeb _webInUserContext = SPContext.Current.Web;
SPSite _siteInUserContext = SPContext.Current.Site;
Guid _webGuid = _webInUserContext.ID;
Guid _siteGuid = _siteInUserContext.ID;
SPSecurity.RunWithElevatedPrivileges(() => {
using (SPSite _site = new SPSite(_siteGuid)) {
_site.AllowUnsafeUpdates = true;
SPWeb _web = _site.OpenWeb().Webs[_webGuid];
。。。。
}
});