में हैंडल सत्र टाइमआउट मेरे पास एक ऐसा एप्लिकेशन है जहां लगभग 20 http generic handler
ajax call
के लिए उपयोग किया जाता है।
मैंने अपने हैंडलर में सत्र तक पहुंचने के लिए IReadOnlySessionState
का उपयोग किया है। सब कुछ ठीक काम कर रहा है।
जेनेरिक http हैंडलर
लेकिन जब सत्र समाप्त हो जाता है तो मेरा हैंडलर कुछ एचटीएमएल लौटा रहा है क्योंकि यह डिफ़ॉल्ट पृष्ठ पर रीडायरेक्ट करता है और डिफ़ॉल्ट पृष्ठ के एचटीएमएल को प्रतिक्रिया में वापस भेज दिया जाता है।
इस मुद्दे को दूर करने के लिए।
मैं हैंडलर में सत्र चर जाँच की है और अगर ऐसा है अशक्त मैं
context.Response.Write("logout")
लिखा है और मैं jQuery ajax मौसम में जाँच यह लॉगआउट या कुछ और है।
$.ajax({
url: "myhandler.ashx",
contentType: "application/json; charset=utf-8",
success: function (data) { checklogout(data); $("#loading").hide(); },
error: function() { $("#loading").hide(); },
async: false
});
यह है लॉगआउट तो मैं स्थान प्रवेश पृष्ठ पर रीडायरेक्ट करने के लिए उपयोग किया है।
मैं उपयोगकर्ता को प्रमाणीकृत करने के लिए form-authentication
का उपयोग कर रहा हूं।
jquery-ajax कॉल का उपयोग कर लॉगिन पेज पर जांच और पुनर्निर्देशित करने के लिए कोई बेहतर तरीका है।
यह शायद बेहतर होगा एक उचित [HTTP स्थिति कोड] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) वापस करने के लिए, जैसे आपके हैंडलर से * 401 अनधिकृत * (और शायद एक एकल बेस हैंडलर बनाएं ताकि आप तर्क दोहराते नहीं हैं)। आप अपने केंद्रीय AJAX विकल्पों ('$ .ajaxsetup') में इस मान को देख सकते हैं, इसलिए जांचने के लिए कोड केवल एक ही स्थान पर जाना होगा। क्या आप जो चाहते हैं उसकी तर्ज पर है? –