2012-01-23 12 views
6

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

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

और मेरे नियंत्रक में जब मैं वर्तमान उपयोगकर्ता नाम मैं किसी भी उपयोगकर्ता नाम नहीं मिल रहा है का उपयोग करने की कोशिश कर रहा हूँ। मैं निम्नलिखित कोशिश कर रहा हूं:

ViewBag.LogInUserName = Request.RequestContext.HttpContext.User.Identity.Name; 

यह उपरोक्त रेखा पहले काम कर रही थी। लेकिन मुझे नहीं पता कि अब क्या गलत है। इसके अलावा मैंने अब आईआईएस पर अपना आवेदन होस्ट किया है।

उत्तर

11

आपको अपने नियंत्रक पर [Authorize] विशेषता डालना होगा।

आप अपने नियंत्रकों में User.Identity.Name का उपयोग कर सकते हैं।

[Authorize] 
public class YourController : Controller 
{ 

    public ActionResult SomeAction() 
    { 
     var userName = User.Identity.Name; 
    } 
} 
+0

मदद के लिए धन्यवाद। क्या आप बस दिखा सकते हैं कि मैं इसे कैसे प्राप्त कर सकता हूं। – Jash

+0

@Jash: मेरा अपडेट पढ़ें। – jgauffin

+0

मैंने एएसपी.Net विकास सर्वर का उपयोग करने के लिए बस अपनी वेब प्रोजेक्ट गुणों को बदल दिया है। और अब मैं उपयोगकर्ता नाम में वर्तमान लॉग पुनर्प्राप्त करने में सक्षम हूं। तो समस्या यह है कि जब मैं आईआईएस पर अपनी वेब परियोजना की मेजबानी कर रहा हूं। कोई उपाय? – Jash

1

थोड़ा देर हो चुकी है, लेकिन यह भविष्य में दूसरों की सेवा कर सकती है।

मेरी साइट को एक नए आईआईएस सर्वर पर तैनात करने के बाद एक ही समस्या थी, और अनाम प्रमाणीकरण सक्षम था, इसलिए सुनिश्चित करें कि अनाम प्रमाणीकरण अक्षम है और इसे काम करना चाहिए।

11

, वेब परियोजना के गुणों पर एक नजर डालें विशेष रूप से:

  1. बेनामी प्रमाणीकरण - "सक्षम" करने के लिए सेट

डिफ़ॉल्ट इन करके - करने के लिए "अक्षम"

  • विंडोज प्रमाणीकरण सेट जो आप शायद खोज रहे हैं उसके विपरीत सेट कर रहे हैं।

    Web project properties

    (छवि MSDN से प्राप्त)