2014-02-10 43 views
1

我已創建了一個組名稱:TestGroup 和一個權限級別名稱:Custompermisionlevel如何將我的自定義權限級別分配給我的TestGroup?

如何我的權限級別(Custompermisionlevel)編程方式分配給我的羣?

我使用這個代碼:

public void SetPermissionsToGroup() 
    { 
     using (var site = new SPSite("http://sp2010:8888")) 
     { 
      using (var web = site.OpenWeb()) 
      { 
       //Get group and group roles 
       var group = web.SiteGroups["TestGroup"]; 
       var roles = new SPRoleAssignment(group);     

       //Add another role 
       roles.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Custompermisionlevel)); 
       roles.Update(); 
      } 
     } 
    } 

,我沒有得到我的SPRoleType Custompermisionlevel。有誰知道我做錯了什麼?

獲取此錯誤:無法更新不屬於權限級別分配集合的權限級別分配。

+0

這是SharePoint嗎? 如果是這樣,你會有更好的運氣標記爲和​​/或通過http://sharepoint.stackexchange.com/詢問。 – DFreeman

回答

1

This answer有一些很好的代碼。您需要做的是通過參考SPWeb上的特定SPRoleDefinition來獲得自定義權限級別的參考。

以下是將指定許可級別「我的測試級別」的示例代碼添加到指定SPUser的SPList。

SPWeb currentWeb = topSite.RootWeb; 
SPList testList = currentWeb.Lists["ListName"]; 
SPUser currentUser = currentWeb.SiteUsers["domain\\userName"]; 
SPRoleAssignment customRoleAssignment = new SPRoleAssignment(currentUser); 

SPRoleDefinition customRoleDefinition = currentWeb.RoleDefinitions["My Test Level"]; 
customRoleAssignment.RoleDefinitionBindings.Add(customRoleDefinition); 

testList.BreakRoleInheritance(false); 
testList.RoleAssignments.Add(customRoleAssignment); 
testList.Update(); 
相關問題