2011-01-19 66 views
1

我目前正在開發一個SharePoint的WebPart顯示的私人討論板。討論只能由受限用戶查看。截至目前,以下允許的用戶可能是:網站集所有者,討論板成員,討論板所有者。的SharePoint討論板,複製設置和規則的web部件

的方式我安裝了Web部件的安全性是讓所有的用戶,並檢查它們是否屬於在討論板上說允許的人。

我的邏輯似乎現在正在工作,但是,我的客戶的關注點是: 如果將來他們將更改討論板的設置或安全性,我可能不再需要修復代碼的webpart的設置和安全性將同步到討論板? 我現在的想法是,我不會開發一個代碼來複制討論板的設置和安全性,並將其應用到webpart,我會直接將webpart的設置和安全性指向討論板。我現在的問題是,這可能嗎?

請參閱隨附PIC有一個什麼樣我想發生更好的視野。

First Image

Second Image

回答

0

您好我有固定的問題!

這個字有物「DoesUserHavePermissions」 ......這裏是我的代碼片段

try 
{ 
    string strListUrl = "http://MySite.com/List/MyDiscussion/AllItems.aspx"; 
    SPUser objCurrentUser = SPContext.Current.Web.CurrentUser; 
    SPSite objSite = new SPSite(SPContext.Current.Web.Url); 
    SPWeb objWeb = objSite.OpenWeb(); 
    SPList objList = objWeb.Lists[strListUrl]; 

    if(!objList.DoesUserHavePermissions(objCurrentUser,SPBasePermissions.EditListItems)){ 
     throw new UnauthorizedAccessException("You are not authorized to view this discussion!"); 
    } 
} 
catch(UnauthorizedAccessException uae){ 
    /// some exception handling codes here 
} 

@djeeg:感謝您的幫助! 1票給你! :)

2

Web部件應該使用CheckPermissions方法

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.checkpermissions.aspx

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems); 

這樣,你只能在列表上設置的權限。

如果用戶沒有權限,要麼就什麼都不顯示,或者說,一個消息:「你有沒有權限」

+0

是否SPBasePermissions.EditListItems允許用戶查看列表,雖然它們的作用只允許他們查看的討論,但不提供。因爲我在討論板上有一個小組,只有特定成員纔可以查看討論,但他們不允許發帖。 – 2011-01-19 10:33:52