2011-02-08 14 views
5

मैंने एक साधारण उदाहरण खोजने का प्रयास किया कि सूची आइटम जेड के लिए एक निश्चित शेयरपॉइंट समूह एक्स, एक अनुमति स्तर वाई कैसे देना है - लेकिन उदाहरण कोड नहीं मिल रहा है।एसपीआईटीम के लिए एसपीजी समूह अनुमतियां कैसे दें?

कम से कम कोड मैं एक विशिष्ट उपयोगकर्ता आइटम के लिए (इस मामले में "रीडर") अनुमतियाँ असाइन करने के लिए साथ आ सकता है निम्नलिखित है:

SPRoleDefinition spRole = spWeb.RoleDefinitions["Reader"];  
SPRoleAssignment roleAssignment= new SPRoleAssignment("//myDomain/myUser", 
                 "[email protected]", 
                 "Name", "Notes");  
roleAssignment.RoleDefinitionBindings.Add(spRole); 

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>"); 
listItem.BreakRoleInheritance(true); 
listItem.RoleAssegnments.Add(roleAssignment); 
listItem.Update(); 

मुझे पता है कि SPRoleAssignment.Add भी एक ले जा सकते हैं SPPrincipal जो बदले में is a group - मुझे नहीं पता कि यह कैसे लिखता है।

कृपया मुझे मेरे आइटम पर "रीडर" अनुमति स्तर के साथ मौजूदा शेयरपॉइंट समूह (उदा। "MyGroup") जोड़ने के लिए कुछ उदाहरण कोड दें।

उत्तर

11

असल में यह आसान था - SPRoleAssignment("user","name"...) के बजाय मैं भूमिका असाइनमेंट में SPGroup जोड़ सकता था और यह काम करता था! पूर्ण कोड निम्नलिखित:

//note: using SiteGroups is "safer", 
//because also groups which don't yet have any permissions are included 
SPGroup spGroup = spWeb.SiteGroups["MyGroup"]; 
SPRoleDefinition spRole = spWeb.RoleDefinitions["Read"]; 

SPRoleAssignment roleAssignment= new SPRoleAssignment(spGroup); 
roleAssignment.RoleDefinitionBindings.Add(spRole); 

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>"); 
listItem.BreakRoleInheritance(true); 
listItem.RoleAssegnments.Add(roleAssignment); 
listItem.Update(); 
+1

इसके लिए धन्यवाद, मुझे एक ही समस्या थी, अच्छा समाधान! –

+0

जब मैं कन्स्ट्रक्टर में spgroup देता हूं तो मुझे भूमिका में शून्य मान मिल रहा है। इसके लिए क्या करना है? समूह पाया जाता है लेकिन काम नहीं कर रहा है। –

संबंधित मुद्दे