हमारे पास एक आंतरिक एएसपी.नेट एमवीसी एप्लीकेशन है जिसके लिए लॉगऑन की आवश्यकता होती है। लॉग ऑन महान काम करता है और क्या अपेक्षित है। हमारे पास 15 मिनट का सत्र समाप्ति है। उस अवधि के लिए एक पृष्ठ पर बैठने के बाद, उपयोगकर्ता ने सत्र खो दिया है। यदि वे वर्तमान पृष्ठ को रीफ्रेश करने या किसी अन्य पर ब्राउज़ करने का प्रयास करते हैं, तो उन्हें पृष्ठ पर एक लॉग मिलेगा। हम उनके अनुरोध को संग्रहीत करते हैं ताकि वे लॉग इन करने के बाद वे उस पृष्ठ पर जारी रह सकें जिस पर उन्होंने अनुरोध किया है। यह बहुत अच्छा काम करता है।एएसपी.नेट एमवीसी सत्र समाप्ति
हालांकि, मेरी समस्या यह है कि कुछ पृष्ठों पर AJAX कॉल हैं। उदाहरण के लिए, वे एक फॉर्म का हिस्सा भर सकते हैं, भटक सकते हैं और अपना सत्र समाप्त कर सकते हैं। जब वे वापस आते हैं, तो स्क्रीन अभी भी प्रदर्शित होती है। अगर वे बस एक बॉक्स भरते हैं (जो एक एजेक्स कॉल करेगा) AJAX कॉल लॉगऑन पेज लौटाएगा (AJAX को जो भी div चाहिए वह वास्तव में वास्तविक परिणाम लौटाएगा)। यह भयानक लग रहा है।
मुझे लगता है कि समाधान पेज की अवधि स्वयं समाप्त करने के लिए (ताकि जब एक सत्र समाप्त हो जाता है, वे स्वतः लॉगऑन स्क्रीन करने के लिए उनके द्वारा किए बिना किसी लौटा दिया जाता है) है। हालांकि, मैं सोच रहा हूं कि एएसपी.नेट एमवीसी में सर्वोत्तम प्रथाओं के संबंध में विशेष रूप से इसे कैसे कार्यान्वित किया जाए, इस पर राय/विचार हैं।
अद्यतन:
तो मैं आगे चला गया और मेरी OnActionExecuting
(प्रति Keltex के सुझाव)
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.Write("Invalid session -- please login!");
filterContext.HttpContext.Response.End();
}
else
{
...
}
}
यह निश्चित रूप से चीजों को बेहतर बनाता है में इस लागू किया - अब भले ही वे दो टैब (एक कुछ AJAX कॉल के साथ वे ट्रिगर कर सकते हैं) और वे दूसरे टैब में स्पष्ट रूप से लॉग आउट करते हैं, वे तुरंत कुछ ऐसा प्राप्त करेंगे जो खराब AJAX डेटा के गुच्छा के बजाय अधिक समझ में आता है।
मैं अब भी लगता है कि मैं के साथ-साथ कि womp सुझाव जावास्क्रिप्ट उलटी गिनती लागू करेंगे।
@Andrew - यह एक सुरुचिपूर्ण समाधान है। वैकल्पिक रूप से, फ़िल्टर Context.HttpContext.Response.Redirect ("/ error/xxx") होगा; (या कुछ) काम करते हैं? – Keltex
@ केल्टेक्स: जैसा कि आप सुझाव देते हैं, मैं इसे एक दृश्य में ले जा सकता हूं - लेकिन मेरे कई AJAX कॉल में, वे कच्चे डेटा (मूल्यों की सूची जैसे) को वापस नहीं कर रहे हैं, जबकि कोई HTML नहीं है जबकि अन्य में वे शायद एक पूरी तालिका लौट रहे हैं अच्छी तरह से स्वरूपित डेटा का।तो सिर्फ कच्चे डेटा का "सबसे कम आम denominator" सबसे अच्छा काम कर सकता है। मैं इसके साथ खेलूँगा। –