मैं एएसपी.नेट एमवीसी 1.0 का उपयोग कर एक एप्लीकेशन पर काम कर रहा हूं और मैं एक कस्टम आईपीआरआईआरपीआर ऑब्जेक्ट को HttpContext.Current.User ऑब्जेक्ट में इंजेक्ट करने की कोशिश कर रहा हूं।एएसपी.नेट एमवीसी कस्टम आईप्रिनियर इंजेक्शन
पारंपरिक वेबफॉर्म एप्लिकेशन के साथ मैंने इस प्रकार ऐसा करने के लिए Application_AuthenticateRequest ईवेंट का उपयोग किया है।
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
// Get Forms Identity From Current User
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
// Get Forms Ticket From Identity object
FormsAuthenticationTicket ticket = id.Ticket;
// Create a new Generic Principal Instance and assign to Current User
SiteUser siteUser = new SiteUser(Convert.ToInt32(id.Name));
HttpContext.Current.User = siteUser;
}
}
}
}
तो इसका उपयोग करके मैं साइट यूज़र टाइप करने के लिए उपयोगकर्ता ऑब्जेक्ट को स्पष्ट रूप से कास्टिंग करके अपने कस्टम आईप्रिंसिपल तक पहुंचने में सक्षम था। मैंने वास्तव में एक कस्टम क्लास करके ऐसा किया था कि सभी पेज विरासत में थे, जिससे यह मेरे लिए कवर के तहत किया गया था।
किसी भी तरह, मेरी समस्या यह है कि एएसपी.नेट एमवीसी के साथ जब भी कोई अनुरोध किया जाता है (इसलिए जेएस फाइलों, इमेज इत्यादि के लिए) एप्लिकेशन_ए प्रमाणीकरण रिवेस्ट आग लगती है जो एप्लिकेशन को मरने का कारण बनती है।
एएसपी.नेट एमवीसी 1.0 के भीतर HttpContext.Current.User ऑब्जेक्ट में मेरे कस्टम आईप्रिंसिपल इंजेक्शन के बारे में कोई मदद या सुझाव मुझे बहुत सराहना की जाएगी। मैंने SO पर निम्न पोस्ट देखा था, लेकिन ऐसा लगता है कि मैं जो हासिल करने की कोशिश कर रहा हूं उसे पूरा करने के लिए प्रतीत नहीं होता: ASP.NET MVC - Set custom IIdentity or IPrincipal
टीआईए।
फ़ाइल प्रकार के बावजूद यह मरना नहीं चाहिए - आप क्या त्रुटि देख रहे हैं? – blowdart
मुझे अनुरोध किए गए प्रत्येक संसाधन के लिए Application_AuthenticateRequest विधि पर "हिट" मिलता है। यह पृष्ठ को एप्लिकेशन_एट प्रमाणीकरण रिवेस्ट विधि के बिना चलने की तुलना में धीरे-धीरे दर्दनाक रूप से प्रस्तुत करता है। SiteUser ऑब्जेक्ट के लिए कन्स्ट्रक्टर विशेष रूप से शानदार नहीं करता है, केवल डीबी से उपयोगकर्ता विवरण और भूमिका सूची प्राप्त करता है। –
बेशक आप ऐसा करते हैं, इस तरह IIS7 काम करता है - मैंने सोचा था कि आप एक त्रुटि – blowdart