近日遇到一個(gè)詭異的需求是這樣的:
某個(gè)客戶(hù)需要做一個(gè)搜索, 得到文檔的信息
這個(gè)文檔庫(kù)可能是帶權(quán)限的, 需要在顯示結(jié)果的時(shí)候判斷當(dāng)前用戶(hù)在這個(gè)文檔庫(kù)上是否有權(quán)限
而這個(gè)文檔庫(kù)可能放在一個(gè)wss網(wǎng)站上
只允許一個(gè)部門(mén)的人進(jìn)入這個(gè)網(wǎng)站, 但是該文檔庫(kù)可以給其他部門(mén)的人加權(quán)限以便查看其中的文檔
以下是用對(duì)象模型的方法判斷文檔庫(kù)上的權(quán)限:
一般來(lái)說(shuō)首先想到的方法肯定是這樣的:
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);?
但是, 對(duì)于上面提到的那種情況, 這種方法是有問(wèn)題的
問(wèn)題一:
該用戶(hù)如果不是該網(wǎng)站成員的話, 上面的做法得不到網(wǎng)站
其表現(xiàn)就是webpart所在頁(yè)面會(huì)反復(fù)彈出用戶(hù)名密碼框......即使你做了try-catch也沒(méi)用, 截不下這個(gè)異常
問(wèn)題二:
該用戶(hù)不是該網(wǎng)站成員, 默認(rèn)情況下不允許使用web.Lists[]這種方法, 會(huì)有異常
對(duì)于第一個(gè)問(wèn)題解決如下, 插入一行代碼:
site.CatchAccessDeniedException = false;??? // Line 1.5
這個(gè)屬性就像其名字一樣, 嗯, 不羅嗦了, 就是可以拿到那個(gè)SPWeb對(duì)象了
對(duì)于第二個(gè)問(wèn)題, 插入一行代碼:
lists.ListsForCurrentUser = true;??????? // Line 3.5
這樣再用web.Lists[]就能得到SPList對(duì)象, 然后再判權(quán)限就行了
上面兩個(gè)對(duì)象模型估計(jì)一般情況下都是用不上的...只有在某些詭異需求的情況下可能會(huì)用到
轉(zhuǎn)載:otec:Erucy
只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 1 | 2 | 3 | 4 | 5 |
常用鏈接
留言簿(3)
隨筆檔案
文章分類(lèi)
文章檔案
- 2008年6月 (2)
- 2007年9月 (1)
- 2007年7月 (2)
- 2007年5月 (1)
- 2007年4月 (1)
- 2007年3月 (3)
- 2006年12月 (9)
- 2006年11月 (10)
- 2006年10月 (7)
相冊(cè)
.net
搜索
最新評(píng)論

- 1.?re: 北京大學(xué)男女學(xué)生投宿旅館關(guān)手機(jī) 警方連夜搜山
- 怎一個(gè)“牛”字了得!
- --北京論壇
- 2.?re: 如何獲取WSS列表視圖的中文字段
- 謝謝!
- --foxhorse
- 3.?re: HOW TO:在 C# .NET 中創(chuàng)建類(lèi)和對(duì)象
- 謝謝了 我收藏了
- --林
- 4.?re: 關(guān)于C#面向?qū)ο笕齻€(gè)特征:繼承,封裝,多態(tài)的說(shuō)明
-
開(kāi)源英漢機(jī)器翻譯C#.NET項(xiàng)目 www.liebiao.net
我們邀請(qǐng)你 有空交流一下
- --zk
- 5.?re: 北京大學(xué)男女學(xué)生投宿旅館關(guān)手機(jī) 警方連夜搜山
- 怎一個(gè)“牛”字了得!
- --wiflish