2011-10-12 13 views
6

मैं शेयरपॉइंट माई साइट्स पर रखने के लिए एक वेब पार्ट बना रहा हूं। मुझे एसपीयूसर प्राप्त करने की ज़रूरत है जिसकी माई साइट वेब पार्ट चालू है। वर्तमान में मैं बसकिसकी साइट पर मैं हूं? (प्रोग्रामेटिक रूप से)

Request.QueryString["accountname"] 

का उपयोग, लेकिन इस पर मेरे अपने मेरी साइट काम नहीं करेगा, और मुझे यकीन है कि यह या तो हर समय काम करेंगे नहीं हूँ।

उत्तर

2

Request.QueryString["accountname"] खाली है उपयोगकर्ता को अपने हीसाइट पर होना चाहिए ताकि आप उपयोगकर्ता को प्राप्त करने के लिए SPContext.Current.Web.CurrentUser देख सकें।

+2

हाँ, लेकिन यह न भूलें कि CurrentUser प्रॉपर्टी वर्तमान में लॉग इन उपयोगकर्ता को लौटाती है, न कि जिस उपयोगकर्ता पर आप MySite हैं। मुझे लगता है कि क्वेरी स्ट्रिंग से खाता नाम प्राप्त करने वाला आपका एकमात्र विकल्प होगा – int32

+0

जैसा कि नाच अपनी पोस्ट में लिखते हैं, जब आप अपनी खुद की माईसाइट पर हैं तो कोई खाता नाम क्वेरी स्ट्रिंग नहीं है, इसलिए आपको कोड में दोनों मामलों के लिए खाते की आवश्यकता होती है: किसी और पर MySite क्वेरीस्ट्रिंग का उपयोग करें और जब धाराओं पर उपयोगकर्ता MySite क्वेरीस्ट्रिंग खाली है तो लॉग ऑन उपयोगकर्ता के लिए SPContext देखें। – Daniel

+0

वेब अनुरोध का उपयोग करना एक हैक जैसा लगता है, लेकिन अगर यह मेरा एकमात्र विकल्प है, तो यह मेरा एकमात्र विकल्प है। धन्यवाद! – Nacht

2

यहाँ

var profileLoader = Microsoft.SharePoint.Portal.WebControls.ProfilePropertyLoader.FindLoader(HttpContext.Current.Handler as Page); 
var userProfile = profileLoader.ProfileLoaded; 

var loginName = userProfile["AccountName"]; 

और फिर बस SPContext.Current.Web से अपने SPUser मिल UserProfile (Microsoft.Office.Server.UserProfiles) का उपयोग कर एक और दृष्टिकोण है,

+0

हम्म .... दिलचस्प ... क्या यह हर बार काम करने की गारंटी है? ऐसा लगता है कि यह केवल मेरी साइट के होम पेज पर काम कर सकता है – Nacht

+0

मेरे पास माइसाइट पर एकाधिक पेज हैं और यह – luccio

+0

काम कर रहा है, ठीक है, धन्यवाद – Nacht

1

ऐसा करने का एक अन्य संभावित रास्ता SPSite के Owner संपत्ति का प्रयोग है। यह आपको SPUser ऑब्जेक्ट देगा जो आम तौर पर बेहतर होता है। यह संपत्ति "साइट स्वामी" संपत्ति से संबंधित है जिसे "साइट संग्रह व्यवस्थापक बदलें" के अंतर्गत केंद्रीय व्यवस्थापक में कॉन्फ़िगर किया जा सकता है। हालांकि ध्यान रखें कि चूंकि इसे कॉन्फ़िगर किया जा सकता है, इसलिए यह जानने के एक पूर्ण स्रोत के रूप में भरोसा नहीं किया जाना चाहिए कि आप किसकी साइट पर हैं।

+0

यह 403 फेंक सकता है जब उपयोगकर्ता को सबवेब तक पहुंच होती है लेकिन कोई व्यक्तिगत साइट नहीं जड़, ब्लॉग में की तरह। – Luizgrs

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