posts - 5,  comments - 5,  trackbacks - 0
          近日遇到一個詭異的需求是這樣的:
          某個客戶需要做一個搜索, 得到文檔的信息
          這個文檔庫可能是帶權限的, 需要在顯示結果的時候判斷當前用戶在這個文檔庫上是否有權限

          而這個文檔庫可能放在一個wss網站上
          只允許一個部門的人進入這個網站, 但是該文檔庫可以給其他部門的人加權限以便查看其中的文檔

          以下是用對象模型的方法判斷文檔庫上的權限:
          一般來說首先想到的方法肯定是這樣的:
          SPSite site = new SPSite("
          http://mysite_url ");???// Line 1
          SPWeb web = site.OpenWeb();????????????????????????? // Line 2
          SPListCollection lists = web.Lists;?????????????????????? // Line 3
          SPList list = lists["MyDocLib"];??????? ??????????????????? // Line 4
          bool perm = list.Permissions.DoesUserHavePermission(SPRights.xxxx);?

          但是, 對于上面提到的那種情況, 這種方法是有問題的
          問題一:
          該用戶如果不是該網站成員的話, 上面的做法得不到網站
          其表現就是webpart所在頁面會反復彈出用戶名密碼框......即使你做了try-catch也沒用, 截不下這個異常
          問題二:
          該用戶不是該網站成員, 默認情況下不允許使用web.Lists[]這種方法, 會有異常

          對于第一個問題解決如下, 插入一行代碼:
          site.CatchAccessDeniedException = false;??? // Line 1.5
          這個屬性就像其名字一樣, 嗯, 不羅嗦了, 就是可以拿到那個SPWeb對象了

          對于第二個問題, 插入一行代碼:
          lists.ListsForCurrentUser = true;??????? // Line 3.5
          這樣再用web.Lists[]就能得到SPList對象, 然后再判權限就行了

          上面兩個對象模型估計一般情況下都是用不上的...只有在某些詭異需求的情況下可能會用到

          轉載:otec:Erucy
          posted on 2006-11-29 11:20 曾科 閱讀(294) 評論(0)  編輯  收藏 所屬分類: SharePoint Portal Server

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          .net

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 哈密市| 岗巴县| 威远县| 宜兰市| 防城港市| 曲阜市| 福海县| 门源| 老河口市| 弥渡县| 井陉县| 白城市| 焦作市| 湖南省| 乐昌市| 陆河县| 崇仁县| 洞口县| 扎鲁特旗| 五常市| 新平| 台湾省| 都匀市| 新安县| 和龙市| 正安县| 金溪县| 贵州省| 金寨县| 阿拉尔市| 长乐市| 屏山县| 莫力| 嘉兴市| 宜宾县| 赤水市| 南丹县| 简阳市| 台中市| 两当县| 新闻|