यहाँ में HttpAntiForgeryException निपटने का एक तरीका परिदृश्य है। फिर उपयोगकर्ता ब्राउजर बैक बटन का उपयोग कर रहा है, और अब वह लॉगिन पेज पर है। वह फिर से प्रवेश करने की कोशिश करता है, लेकिन अब एक अपवाद फेंका जाता है:ठीक से MVC 4 आवेदन
HttpAntiForgeryException (0x80004005): प्रदान की विरोधी जालसाजी टोकन उपयोगकर्ता के लिए "मतलब था", लेकिन वर्तमान उपयोगकर्ता है "उपयोगकर्ता नाम"।
मुझे पता है कि यह कैशिंग से संबंधित है। कस्टम NoCache फिल्टर है जो सभी आवश्यक शीर्षकों के सेट का उपयोग कर लॉगिन कार्रवाई के लिए मैं विकलांग ब्राउज़र कैशिंग - नहीं-कैश, कोई दुकान, चाहिए-पुनः सत्यापित, आदि लेकिन
- इस सभी ब्राउज़रों पर काम नहीं कर रहा
- विशेष रूप से सफारी (ज्यादातर मामलों में मोबाइल) कुल सेटिंग्स को अनदेखा करता है
मैं हैक बनाने और सफारी मोबाइल को ताज़ा करने के लिए मजबूर करने की कोशिश करूंगा, लेकिन यह मेरी अपेक्षा नहीं है।
मैं अगर मैं कर सकते हैं जानना चाहूंगा:
- किसी भी समस्या मौजूद है उपयोगकर्ता (पूरी तरह से उपयोगकर्ता के लिए पारदर्शी)
- विरोधी जालसाजी टोकन उपयोगकर्ता नाम बदल कर भी इस समस्या को रोकने के बिना दिखाए संभाल अपवाद जो होगा इस अपवाद के बिना उपयोगकर्ता लॉगिन को फिर से अनुमति दें, यदि ब्राउज़र कैशिंग से संबंधित मेरे हैक ब्राउज़र के अगले संस्करणों में काम करना बंद कर देंगे।
- मैं वास्तव में ब्राउज़र व्यवहार पर भरोसा नहीं करना चाहता, क्योंकि प्रत्येक व्यक्ति अलग-अलग व्यवहार करता है।
UPDATE 1
कुछ स्पष्टीकरण बनाने के लिए, मुझे पता है कि MVC में त्रुटियों को संभालने के लिए। समस्या यह है कि यह हैंडलिंग त्रुटियां मेरी समस्या को हल नहीं कर रही हैं। त्रुटि प्रबंधन का मूल विचार अच्छा संदेश के साथ कस्टम त्रुटि पृष्ठ पर रीडायरेक्ट किया गया है। लेकिन मैं इस त्रुटि को रोकने के लिए, उपयोगकर्ता दृश्यमान तरीके से इसे संभालने के लिए नहीं रोकना चाहता हूं। हैंडल द्वारा मेरा मतलब है कि उपयोगकर्ता नाम बदलें या अन्य उपयुक्त कार्रवाई करें, फिर लॉगिन जारी रखें।
अद्यतन 2
मैं समाधान जो मेरे लिए काम कर रहा है नीचे जोड़ दिया है।
यह मेरे लिए बहुत अच्छा काम करता है। मुझे किसी भी फैंसी करने की ज़रूरत नहीं है। बस पीले रंग की स्क्रीन फेंक नहीं। – hal9000