2012-07-03 9 views
6

"क्या आपने कभी भी .NET प्रोग्रामिंग किया है? हाँ? अच्छा, यहां एक बड़ा टूटा प्रोग्राम है, इसे ठीक करें"। यही वह स्थिति है जिसमें मैं हूं, इसलिए क्षमा करें अगर यह एक आसान सवाल है।सी # एएसपीनेट उपयोगकर्ता नाम प्राप्त कर रहा है

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

मैंने निम्नलिखित कोशिश की है और यह एक खाली स्ट्रिंग देता है।

user = HttpContext.Current.User.Identity.Name; 
+3

क्या आपने आईआईएस में वेब एप्लिकेशन के लिए विंडोज प्रमाणीकरण सक्षम किया है? –

+0

पर्यावरण.उसरनाम वापस क्या करता है? –

उत्तर

7

कृपया सुनिश्चित करें कि आप Web.Config फ़ाइल में विंडोज प्रमाणीकरण सेट कर रहे हैं। इसके अलावा,

HttpContext.Current.User.Identity.IsAuthenticated 

सेट Web.Config इस प्रकार उपयोगकर्ता नाम एक्सेस करने से पहले निम्नलिखित की जाँच करें,

<authentication mode="Windows"></authentication> 
+0

प्रमाणीकरण वर्तमान में फ़ॉर्म पर सेट है। क्या खिड़कियों को बदलने में बहुत खतरा है? <प्रमाणीकरण मोड = "फॉर्म"> <फॉर्म loginUrl = "~/खाता/login.aspx" टाइमआउट = "2880" /> babno

+1

+1 लेकिन आपको विंडोज़ में बदलने की आवश्यकता नहीं है। प्रमाणीकरण मोड को उस साइट पर रखें जिसे साइट के लिए डिज़ाइन किया गया है। (यदि उपयोगकर्ता लॉग इन है तो उपयोगकर्ता नाम किसी भी अन्य प्रमाणीकरण मोड के साथ पॉप्युलेट किया जाएगा) –

+1

हां। डिजाइन को इस तरह रखें। और निम्नलिखित लिंक का उपयोग करके फॉर्म प्रमाणीकरण को समझने का प्रयास करें http://stackoverflow.com/questions/8810496/forms- प्रमाणीकरण-understanding-context-user-identity –

0

User ऑब्जेक्ट के गुणों को आम तौर पर आवेदन के प्रमाणीकरण योजना (फार्म, विंडोज या कस्टम से भर जाते हैं) इसलिए आपको यह सुनिश्चित करना होगा कि User तक पहुंचने से पहले इनमें से एक जगह पर है।

अधिक जानकारी के लिए, docs at MSDN पर एक नज़र डालें।

1

वेब.config<authentication> टैग के लिए फ़ाइल में पहली बार जांचें। यदि आपको यह नहीं मिला है तो आपका एप्लिकेशन किसी मानक प्रमाणीकरण तंत्र का उपयोग नहीं कर रहा है। यदि यह मामला login.aspx या प्रमाणीकरण करने वाले कोड के अंदर दिखता है। वहां आपको उपयोगकर्ता डेटा में लॉग इन हो जाएगा।

मैं आपको वेब.कॉन्फिग फ़ाइल में कुछ भी बदलने के लिए अनुशंसा नहीं करता हूं, बिना आवेदन में क्या हो रहा है पर कुछ समझदारी के बिना।

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