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 曾科 閱讀(297) 評論(0)  編輯  收藏 所屬分類: SharePoint Portal Server

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


          網站導航:
           
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          .net

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 高清| 海晏县| 福建省| 普安县| 措勤县| 柘荣县| 丹巴县| 和林格尔县| 喀什市| 怀柔区| 宿松县| 奉新县| 舟山市| 新昌县| 平湖市| 武夷山市| 宜兴市| 盈江县| 韶山市| 瑞安市| 股票| 揭东县| 河曲县| 五家渠市| 绵阳市| 芦山县| 依安县| 广汉市| 临江市| 阆中市| 中西区| 漳浦县| 云浮市| 博客| 赣榆县| 咸丰县| 独山县| 安岳县| 综艺| 贺兰县| 社会|