日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wss代码执行的权限提升

發(fā)布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wss代码执行的权限提升 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文:http://msdn2.microsoft.com/en-us/library/bb466220.aspx

在SharePoint中,正常情況下我們在WebPart或后臺自定義應(yīng)用程序中的代碼都是以當前用戶的身份和權(quán)限運行。在絕大多數(shù)情況下,這樣做是正確的,也是我們期望的。這可以阻止一般用戶執(zhí)行一些本來是站點管理員才能執(zhí)行的操作,或者查看到不應(yīng)該看到的信息。然而,有時我們的代碼必須要執(zhí)行一些SharePoint對象模型中對某些用戶有限制的方法,即使該請求是由一個沒有該操作權(quán)限的人發(fā)起的。這時,我們必須能夠在代碼中提升權(quán)限,使得該操作被允許在Web服務(wù)器上執(zhí)行。
?
假設(shè)我們有一個WebPart要顯示一些通過SharePoint對象模型得到的信息,如:當前站點集所有者的名稱,使用率統(tǒng)計數(shù)據(jù),或?qū)徍诵畔⒌取U{(diào)用這些對象模型都是需要站點管理權(quán)限才可以。如果當前用戶不是站點管理員的話,該WebPart試圖獲取這類信息時就就會報一個拒絕訪問的錯誤。實際上,我們可以通過調(diào)用SPSecurity類的RunWithElevatedPrivileges方法成功的執(zhí)行上面提到的這些調(diào)用。
SPSite siteColl = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;
SPSecurity.RunWithElevatedPrivileges(delegate() {
? using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID)) {
??? using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID)) {
????? string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;
????? string Visits = ElevatedsiteColl.Usage.Visits.ToString();
????? string RootAuditEntries =
????????? ElevatedSite.RootFolder.Audit.GetEntries().Count.ToString();
??? }
? }
});


RunWithElevatedPrivileges方法通過接受一個委托(delegate)參數(shù), 來添加一個需權(quán)限提升后執(zhí)行的方法的引用。在C#中,正如上面的代碼展示的那樣,可以使用一個匿名方法來編寫委托參數(shù),直接寫在另一個方法內(nèi)部就行。

當我們通過調(diào)用RunWithElevatedPrivileges提升在SharePoint上下文中的權(quán)限后,我們必須接著創(chuàng)建一個SPSite和SPWeb類的實例。切記不能通過Microsoft.SharePoint.SPContext.Current屬性來獲取這些對象。因為這些對象都是通過當前用戶的安全上下文創(chuàng)建的。上面的代碼展示了一種很好的方法來在權(quán)限提升后得到這些對象。另外這樣寫還可以保證在Using語句外這些對象可以通過調(diào)用Dispose方法很好的被釋放。

最后,我們要注意,這種方式獲取的權(quán)限是很強大的。事實上,提升后的操作是在SharePoint系統(tǒng)帳戶下運行。該帳戶對于當前服務(wù)器場內(nèi)所有網(wǎng)站集都具有完全控制的權(quán)限。因此,在使用提升權(quán)限時我們有義務(wù)保證不能讓用戶訪問到不該訪問的信息或執(zhí)行一些其本來沒有權(quán)限執(zhí)行的操作。

轉(zhuǎn)載于:https://www.cnblogs.com/xiaokangufo/archive/2010/01/25/1656181.html

總結(jié)

以上是生活随笔為你收集整理的wss代码执行的权限提升的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。