天天看點

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上的提問 。參考資料

繼續閱讀