2008-11-28 16 views
10

कोई भी मुझे दिखा सकता है कि शेयरपॉइंट का उपयोग करके उपयोगकर्ताओं को किसी निश्चित समूह के भीतर कैसे प्राप्त किया जाए?शेयरपॉइंट में समूह द्वारा उपयोगकर्ताओं को

इसलिए मेरे पास एक सूची है जिसमें उपयोगकर्ता और समूह शामिल हैं। मैं उस सूची में सभी उपयोगकर्ताओं को पुनर्प्राप्त करना चाहता हूं। क्या सूची आइटम समूह या उपयोगकर्ता है या नहीं, इसके बीच अंतर करने का कोई तरीका है। यदि यह एक समूह है, तो मुझे उस समूह के भीतर सभी उपयोगकर्ताओं को प्राप्त करने की आवश्यकता है।

सी # का उपयोग कर रहा हूं, और मैं इसे कंसोल एप्लिकेशन बनाकर thins करने की कोशिश कर रहा हूं।

शेयरपॉइंट के लिए नया हूं और वास्तव में पूल के गहरे छोर पर कूद रहा हूं, किसी भी मदद की अत्यधिक सराहना की जाएगी।

चियर्स ..

+2

क्या आप SharePoint या सक्रिय निर्देशिका समूहों के बारे में बात कर रहे हैं? – Nico

उत्तर

14

पहली बात आप जानना चाहते हैं कि आप एक उपयोगकर्ता/समूह क्षेत्र के साथ एक सूची है, जब आप अपने प्रकार के बारे में पता होना चाहिए है। जब आपके पास आइटम मान के भीतर एक उपयोगकर्ता या समूह होता है, तो फ़ील्ड प्रकार SPFieldUserValue है। हालांकि, यदि फ़ील्ड में एकाधिक उपयोगकर्ता/समूह चयन हैं तो फ़ील्ड प्रकार SPFieldUserValueCollection है।
मैं मान लेंगे कि अपने क्षेत्र के लिए एक एकल उपयोगकर्ता/समूह चयन की अनुमति देता है और आप पहले से ही निम्नलिखित वस्तुओं है:

SPSite site; 
SPWeb web; 
SPListItem item; 

अब, हम एक उपयोगकर्ता/समूह के लिए फ़ील्ड मान की जांच करेंगे और की सूची प्राप्त उपयोगकर्ता, किस तरह से स्वतंत्र हैं (क्षेत्र का नाम "उपयोगकर्ता") है।

SPFieldUserValue usersField = new SPFieldUserValue(mainWeb, item["Users"].ToString()); 
bool isUser = SPUtility.IsLoginValid(site, usersField.User.LoginName); 
List<SPUser> users = new List<SPUser>(); 

if (isUser) 
{ 
    // add a single user to the list 
    users.Add(usersField.User); 
} 
else 
{ 
    SPGroup group = web.Groups.GetByID(usersField.LookupId); 

    foreach (SPUser user in group.Users) 
    { 
     // add all the group users to the list 
     users.Add(user.User); 
    } 
} 

मुझे आशा है कि यह आपकी मदद करेगी।

Tks,
पेड्रो जोस बतिस्ता

+0

जैसा कि सेर्गेई ट्यूरिन कहते हैं कि साइट ग्रुप का उपयोग करना बेहतर है क्योंकि वेब। समूह केवल उन समूहों को संदर्भित वेब के अधिकारों के साथ लौटाते हैं। –

+0

आपको "उपयोगकर्ताओं" लाइन पर एक त्रुटि दिखाई देती है। जोड़ें (उपयोगकर्ता। उपयोगकर्ता); "। चूंकि "उपयोगकर्ता" पहले से ही एक एसपीयूसर ऑब्जेक्ट है, आप इसे सूची में जोड़ सकते हैं: उपयोगकर्ता। जोड़ें (उपयोगकर्ता); – Patric

+0

मैं यह सामान कहां चला सकता हूं? क्या मैं इसे सिर्फ .js फ़ाइल में डालता हूं और इसे अपने कंसोल या कुछ से चलाता हूं? – Batman

5

ध्यान दें: एक SPUser वस्तु किसी विज्ञापन समूह हो सकता है (कि कहने के लिए, एक SPUser वस्तु "डोमेन \ डोमेन उपयोगकर्ता" ... यही वजह है कि है के लिए मौजूद हो सकता है SPUser वस्तु भी संपत्ति IsDomainGroup शामिल हैं।

यह जानकारी आपके SPPrincipalInfo वस्तुओं का उपयोग कर विज्ञापन समूहों के माध्यम से पार करने के लिए ... लेकिन यह हमेशा सुखद नहीं है शुरू कर सकते हैं से।

एक ध्यान में रखना फ़ायदेमंद बात यह है कि है एसपी ग्रुप ऑब्जेक्ट में ContainsCurrentUser प्रॉपर्टी शामिल है जो एडी समूहों को पार कर सकता है ... यह मानता है कि आपको काम करने के लिए एसपी ग्रुप ऑब्जेक्ट मिला है, हालांकि।

आनंद लें।
स्कॉट

0

यह एक समूह के रूप web.SiteGroups बजाय web.Groups उपयोग करने के लिए है कि साइट द्वारा विरासत में मिला जा सकता है बेहतर है।

0
private bool IsMember() 
    { 
     bool isMember; 
     SPSite site = new SPSite(SiteURL); 
     SPWeb web = site.OpenWeb(); 
     isMember = web.IsCurrentUserMemberOfGroup(web.Groups["GroupName"].ID); 
     web.Close(); 
     site.Close(); 
     return isMember; 
    } 
+0

यह ठीक नहीं है कि ओपी ने क्या पूछा। वह समूह समूह के सभी सदस्यों को यह जांचने के लिए सूचीबद्ध करना चाहता था कि खाता Xy किसी विशिष्ट समूह में है या नहीं। – Patric

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