2011-04-11 6 views
5

मैं एक क्लाइंट साइट पर हूं जहां उनके पास एक ऐसा एप्लिकेशन है जो SharePoint में शुरू हुआ था और धीरे-धीरे एक बहुत ही कस्टम एएसपी.NET एप्लिकेशन में माइग्रेट कर रहा है। उनके कुछ डेटा तत्व अभी भी SharePoint सूचियों के भीतर होस्ट किए जाते हैं, जिनमें से दो वर्तमान में प्रश्न में हैं "नोट्स" और "कार्य" (उनके शेयरपॉइंट सेटअप में काफी सरल डेटा तत्व, उनके बारे में कुछ खास नहीं)। ASP.NET के भीतर से करने में सक्षम होने वाली चीज़ों में से एक यह है कि इन सूचियों के लिए स्वचालित रूप से कुछ नए आइटम बनाएं और उन्हें कोड से जोड़ें।आईडी प्राप्त करें? वर्तमान उपयोगकर्ता की तरह SharePoint कर सकते हैं?

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

Assigned To field

मूलतः, यह वर्तमान Windows डोमेन के उपयोगकर्ता प्रवेश करने के लिए एक क्षेत्र है। पुस्तक आइकन एक पॉप-अप खुलता है जो उपयोगकर्ता को नाम, आदि की खोज करने की अनुमति देता है। मेरे वर्तमान परीक्षण में, मैं एक विकास मशीन पर स्थानीय प्रशासक के रूप में चल रहा हूं। तो मैं पॉप-अप में बस "व्यवस्थापक" की तलाश करता हूं और यह अपेक्षित के रूप में "[मशीन नाम] \ Administrator" के साथ फ़ील्ड को पॉप्युलेट करता है। फिर, डिबगिंग में, फ़ील्ड से खींचा जाने वाला मान और SharePoint सूची आइटम में दर्ज किया गया नाम "1" जैसा कि किसी नाम या उसके जैसा कुछ भी है।

मुझे लगता है कि "1" स्थानीय व्यवस्थापक खाते के लिए पहचानकर्ता है। सब के बाद, समझ में आता है। लेकिन मेरा सवाल यह है कि, कोड में मौजूदा लॉग-इन उपयोगकर्ता के लिए मैं उस पहचानकर्ता को कैसे प्राप्त कर सकता हूं? मुझे वर्तमान उपयोगकर्ता का नाम प्राप्त करने के लिए कोड मिला है, लेकिन किसी भी प्रकार की संख्यात्मक नहीं है (भले ही यह एक स्ट्रिंग है) आईडी।

इसके अतिरिक्त, यह केवल एएसपी.NET अनुप्रयोग संदर्भ के अंदर नहीं होगा। लैपटॉप के लिए एक डब्ल्यूपीएफ क्लाइंट एप्लिकेशन भी है जो इन सूची आइटमों को उत्पन्न करेगा और कनेक्ट होने पर उन्हें सर्वर पर वापस सिंक्रनाइज़ करेगा। मैं वर्तमान में इस धारणा पर परिचालन कर रहा हूं कि क्लाइंट उपयोगकर्ता सर्वर के लिए ज्ञात एक उचित डोमेन खाते से लॉग इन होगा।

मुझे लगता है कि यह बहुत आसान है, मैंने अभी तक जो कुछ भी चाहिए उसे पूरा नहीं किया है।

उत्तर

6

मैं आप इस के लिए देख रहे लगता है:

int userId = SPContext.Current.Web.CurrentUser.ID; 

वैसे, इस SharePoint द्वारा उपयोगकर्ता को असाइन आंतरिक आईडी है। इस आईडी को एक WPF एप्लिकेशन से प्राप्त करने के लिए, आप SharePoint के अंदर एक वेब सेवा को तैनात कर सकते हैं जो इस आईडी को वापस कर देगा। या आप SharePoint डेटाबेस से भी पूछ सकते हैं, लेकिन मुझे यकीन नहीं है कि यह सुरक्षित है :-)

+0

उत्कृष्ट, निश्चित रूप से मुझे एएसपी.NET पक्ष के लिए क्या चाहिए। (मुझे लगा कि यह आसान था, मुझे बस एसपी के बारे में कुछ नहीं पता है।) डब्ल्यूपीएफ एक थोड़ा और जटिल है, क्योंकि इसे कभी-कभी जुड़े मॉडल में काम करने की ज़रूरत होती है। तो एसपी कनेक्टिविटी की कोई गारंटी नहीं है। मुझे लगता है कि सबसे खराब मामला यह है कि क्लाइंट मशीन स्थानीय स्टोरेज में आइटम कतारबद्ध करती है (जो पहले से ही एसपी से संबंधित नहीं है) और, उन्हें वेब सेवा पर दबाते समय, आईडी को असाइन करें क्योंकि वेब सेवा वास्तविक एसपी में जोड़ती है सूचियों। यह सुनिश्चित करने के लिए कि वेब सेवा में एसपी संदर्भ है, मुझे क्लाइंट से जांच करनी होगी। – David

+0

आप एक बार यह आईडी भी प्राप्त कर सकते हैं और फिर इसे नए डेटाबेस पर संग्रहीत कर सकते हैं। बहुत आसान और तेज़ होगा। – goenning

+0

हां, मुझे लगता है कि मुझे किसी बिंदु के कामकाज के साथ जाना होगा। मैं क्लाइंट लैपटॉप पर किसी तालिका में कुछ बुनियादी डेटा तत्वों को संग्रहीत करने के बारे में सोच रहा हूं और, जब यह सिंक्रनाइज़ेशन वेब सर्वर (मौजूदा कार्यक्षमता, यह अभी बहुत सारी चीजें सिंक करता है) को हिट करता है तो बस उन तत्वों को सर्वर पर अपलोड करने के लिए एक विधि जोड़ें और सर्वर को विवरण पता करने दें। अभी रोकना बिंदु यह है कि मुझे नहीं लगता कि एसपी संदर्भ सिंक वेब सेवा पर उपलब्ध है, इसलिए मुझे इसे एक वास्तुशिल्प चिंता के रूप में संबोधित करना होगा। धन्यवाद! – David

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