天天看点

Elevated Privileges,还是要注意不能随心所欲,这就是SharePoint

当page library出现401或者access denied的时候,先看看自己的code。

比如SPContext . Current . Site . RootWeb 工作用户是anonymous的时候,我们要得到

一个static member: RootFolder.WelcomePage。这个时候就不能用

SPContext . Current . Site .

RootFolder.WelcomePage,因为这样会直接抛出Access Denied异常。只能取巧,通过重新建立新的SPWeb instance的方式,再用ElevatedPrivileges。

bool rtn = false;

SPWeb rootWeb = SPContext.Current.Site.RootWeb;

SPSecurity.RunWithElevatedPrivileges(delegate()

{

using (SPSite site = new SPSite(rootWeb.Site.Url))

{

using (SPWeb web = site.OpenWeb())

{

rtn = web.Url + "/" + web.RootFolder.WelcomePage

== this.Page.Request.Url.AbsoluteUri;

}

}

});

return rtn;

详细可以参考我在Stackoverflow上的提问 。参考资料

继续阅读