मैं एक एमवीसी 3 इंट्रानेट एप्लिकेशन (विंडोज प्रमाणीकरण) पर काम कर रहा हूं। उपयोगकर्ता लॉग इन करने के बाद एप्लिकेशन को उपयोगकर्ता का प्रोफाइल पेज प्रदर्शित करना होगा। ऐसा करने के लिए कि लॉग इन उपयोगकर्ता का उपयोगकर्ता नाम Global.asax.cs में निम्न रूट में रूट पैरामीटर के रूप में पारित किया जाना चाहिए।ASP.NET MVC3 इंट्रानेट एप्लिकेशन में उपयोगकर्ता नाम लॉग इन करना
routes.MapRoute(
"Initial",
"{controller}/{action}/{emailAlias}", // URL with parameters
new { controller = "Home", action = "Home", userId = **<USERNAME>**}
);
यहां, मैंने कुछ विकल्पों का उपयोग किया है।
पहले मैंने
Environment.Username
का उपयोग किया था। जो विकास में अच्छी तरह से काम करता है। लेकिन प्रकाशन के बाद नहीं। क्योंकिEnvironment.Username
एप्लिकेशन पूल का नाम उत्पन्न करता है जिसमें ऐप चलता है। जैसा कि here वर्णित है।Controller.User.Identity.Name
का उपयोग नियंत्रकों में वांछित उपयोगकर्ता नाम प्राप्त करने के लिए किया जाता है, पूर्व और पोस्ट प्रकाशन में अच्छी तरह से काम करता है। लेकिन इसका उपयोग Global.asax.cs के संदर्भ में नहीं किया जा सकता है।System.Web.HttpContext.Current.User.Identity.Name
शून्य संदर्भ प्रदान करता है।System.Security.Principal.WindowsIdentity.GetCurrent().Name
तरहEnvironment.Username
के रूप में की एक ही काम करता है मुझे यकीन है कि यह अब तक कि मैं एक noob हूँ यह पता लगाने की आसान है हूँ। शायद मैं कुछ स्पष्ट याद किया है। यदि ऐसा है तो कृपया इसे इंगित करें या कृपया मुझे एक सरल समाधान के बारे में बताएं धन्यवाद।
तो जब मैं उपयोगकर्ता को अपने सहकर्मी के उपयोगकर्ता नाम में बदलता हूं तो उसकी प्रोफ़ाइल दिखाई देगी? मार्ग के बजाय नियंत्रक को इंगित करने के लिए – jao