मेरे पास एक ऐसा एप्लिकेशन है जो एएसपी.नेट फॉर्म प्रमाणीकरण का उपयोग करता है। अधिकांश भाग के लिए, यह बहुत अच्छा काम कर रहा है, लेकिन मैं एक .ashx फ़ाइल के माध्यम से एक साधारण एपीआई के लिए समर्थन जोड़ने की कोशिश कर रहा हूं। मैं एएसएक्स फ़ाइल को वैकल्पिक प्रमाणीकरण चाहता हूं (यानी यदि आप प्रमाणीकरण शीर्षलेख की आपूर्ति नहीं करते हैं, तो यह अनामित रूप से काम करता है)। लेकिन, आप जो करते हैं उसके आधार पर, मैं कुछ शर्तों के तहत प्रमाणीकरण की आवश्यकता चाहता हूं।प्रपत्र प्रमाणीकरण: लॉगिन पृष्ठ पर रीडायरेक्ट अक्षम करें
मैंने सोचा कि यदि आवश्यक प्रमाणीकरण की आपूर्ति नहीं की गई है तो स्थिति कोड 401 के साथ प्रतिक्रिया देने का यह एक साधारण मामला होगा, लेकिन ऐसा लगता है कि प्रपत्र प्रमाणीकरण मॉड्यूल उसमें अवरुद्ध है और इसके बजाय लॉगिन पृष्ठ पर रीडायरेक्ट का जवाब दे रहा है। , ग्राहक पर एक 401 त्रुटि कोड हो रही के बजाय फिर
public void ProcessRequest(HttpContext context)
{
Response.StatusCode = 401;
Response.StatusDescription = "Authentication required";
}
की तरह मैं उम्मीद, मैं वास्तव में एक 302 लॉगिन पृष्ठ पर पुनर्निर्देशित हो रही है: क्या मेरा मतलब है, मेरी ProcessRequest
विधि इस तरह दिखता है, तो है ।
नोर्नल HTTP ट्रैफ़िक के लिए, मैं देख सकता हूं कि यह कैसे उपयोगी होगा, लेकिन मेरे एपीआई पेज के लिए, मैं 401 को अनमोडिफाइड के माध्यम से जाना चाहता हूं ताकि क्लाइंट-साइड कॉलर प्रोग्रामेटिक रूप से इसका जवाब दे सके।
क्या ऐसा करने का कोई तरीका है?
यह .NET 4.5 का उपयोग कर किसी के भी उत्तर है। बहुत बुरा मैंने सूची में इसे अभी तक नहीं पढ़ा और मुझे इसे अपने आप को अपूर्ण स्रोतों में ढूंढना पड़ा! –
आप इसे अपने पूरे एप्लिकेशन में लागू करने के लिए Global.asax 'Application_EndRequest' ईवेंट में डाल सकते हैं। [उदाहरण के लिए।] (Http://stackoverflow.com/a/18519725/188246) –
मैंने बड़ी सफलता के साथ Application_BeginRequest विधि में एक समान स्निपेट का उपयोग किया। अनुरोध AJAX है? तुरंत ध्वज सेट करें। –