2009-01-05 14 views
5

देता है मैं अपने शेयरपॉइंट एप्लिकेशन के लिए वर्तमान उपयोगकर्ता नाम ढूंढने की कोशिश कर रहा हूं। ऐसा करने के लिए एक और तरीका है। हालांकि शेयरपॉइंट तरीका भ्रामक मूल्य देता है।SPContext.Current.Web.CurrentUser भ्रामक मान

System.Security.Principal.WindowsIdentity.GetCurrent().Name // returns MY_COMPUTER\\my_user 

HttpContext.Current.User.Identity.Name // returns MY_COMPUTER\\my_user 

HttpContext.Current.Request.ServerVariables["AUTH_USER"] // returns MY_COMPUTER\\my_user 

Microsoft.SharePoint.SPContext.Current.Web.CurrentUser.LoginName // returns SHAREPOINT\\system 

इस व्यवहार का कारण क्या है? यदि मैं गैर-शेयरपॉइंट मार्ग का उपयोग करूंगा तो क्या मुझे समस्याएं आती हैं?

+0

यह एक सेटअप समस्या हो सकती है क्योंकि इंटरनेट की एक सरसरी खोज यह दिखती है कि यह सही ढंग से लौटता है और न कि SHAREPOINT \ System जिसे आप देख रहे हैं। –

उत्तर

5

यह अपेक्षा की जाती है कि उपयोगकर्ता वर्तमान वेब एप्लिकेशन चला रहे एप्लिकेशन पूल खाता है।
BTW, यह एक ही नाम स्वागत नियंत्रण (ऊपरी बाएँ नियंत्रण)

6

क्या आप उस व्यवस्थापक खाते के रूप में ब्राउज़ कर रहे हैं जिसका उपयोग आपने सिस्टम को स्थापित करने के लिए किया था? शेयरपॉइंट "मददगार" नाम बदल जाएगा कि SHAREPOINT \ System। एक अलग खाता का प्रयोग करें और सभी विधियां एक ही मूल्य लौटाएंगी।

0

अन्य तरीके से SPWeb.CurrentUser लौट सकते हैं SHAREPOINT में दिखाया गया के रूप में माना जाता है \ प्रणाली वेब ऊंचा है, तो है, हालांकि मुझे यकीन है कि नहीं कर रहा हूँ क्यों SPContext.Current ऊंचा हो जाएगा। आप इस व्यवहार को किस प्रकार के पेज पर देख रहे हैं?

1

मुझे लगता है कि आप इस कोड को SPSecurity.RunWithElevatedPriviliges के तहत शामिल कर सकते हैं। इसे एक बार देखें। मुझे यकीन नहीं है कि

4

समस्या यह है कि आप शायद वर्तमान उपयोगकर्ता को RunWithElevatedPrivileges कोड के अंदर एक उन्नत SPWeb से प्राप्त कर रहे हैं। आप वास्तविक उपयोगकर्ता

SPWeb site = SPContext.Current.Web; 
SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID)) 
    { 
     using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID)) 
     { 
      string currUser = site.CurrentUser; //not the ElevatedSite.CurrentUser 
     } 
    } 
}); 

यह वास्तविक उपयोगकर्ता नाम के बजाय SHAREPOINT \ System उपयोगकर्ता दिखाएगा प्राप्त करने के लिए नीचे दिए गए स्निपेट का उपयोग कर सकते हैं।

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