2010-09-01 14 views
7

मेरी asp.net-mvc प्रोजेक्ट में मेरे पास खाता नियंत्रक है जो लॉग इन करने पर अनुरोध करता है कि उपयोगकर्ता प्राथमिकताओं के साथ कुकी को Request.Response में सेट करें और फिर एक RedirectToAction करता है। रीडायरेक्ट करने पर, कुकीज़ रीसेट कर दी गई हैं इसलिए मैंने अपनी सेटिंग्स को खोला।Response.Cookies रीसेट हो जाता है जब RedirectToAction को

एकमात्र समाधान मैं के साथ tempdata में कुकी से डेटा जोड़ रहा है और फिर बाद में RedirectToAction के लक्ष्य कार्रवाई में इसे फिर से प्राप्त करने में कठिनाई आ सकती है। यह बंद है बेशक एक छोटे से पीछे की ओर ...

इस एक आम बात है? क्या कोई बेहतर समाधान नहीं है? क्या मुझे अपनी कुकीज़ को अलग-अलग संभालना चाहिए?

उत्तर

2

हाँ, इस के लिए TempData का उपयोग कर एक आम बात है, और यह कैसे TempData इस्तेमाल किया जा माना जाता है के साथ काफी कतार में है - एक ग्राहक रीडायरेक्ट केवल अलग दो कार्रवाई तरीकों के बीच अस्थायी डेटा गुजर।

चूंकि लॉगिन पृष्ठ से रीडायरेक्ट किसी भी अन्य क्रिया विधि के लिए हो सकता है, तो आप अपने बेस नियंत्रक में TempData से कुकीज़ सेट करने के लिए कार्यक्षमता को कार्यान्वित कर सकते हैं। यह किसी भी एक्शन विधि कुकीज-थ्रूडेटा अनुपालन करेगा। यह एक आम परिदृश्य है जब पृष्ठों, जहां अधिसूचना (इस साइट पर नोटिफिकेशन) आमतौर पर दृश्य स्वचालित रूप से करने के लिएViewData करने के लिए TempData से यात्रा करेंगे पर सूचनाएं दिखाती रहती है।

+0

मैं बेहतर कार्यान्वयन की उम्मीद कर रहा था। अगर मैं इसे इस तरह कार्यान्वित करता हूं तो मैं अपने सभी decoupling को खो देंगे .. –

+0

@boris क्या decoupling, विशेष रूप से? – bzlm

+0

मैंने अपने उपयोगकर्ता सत्र से अपने उपयोगकर्ता सत्र को संभालने के लिए निकाला ताकि कुकीज़ मेरे परीक्षण को खराब न करे और सत्रों के बाकी हिस्सों से छुटकारा पाने की कोशिश करने के आधे दिमाग से अगर मैं कोई रास्ता ढूंढ सकूं। अब मेरे नियंत्रकों को फिर से मेरे सत्र के कार्यान्वयन को जानने की आवश्यकता है (कुकी को tempdata से प्राप्त करें) और मेरे सत्र को मेरे नियंत्रक के बारे में जानने की आवश्यकता है (इसे tempdata में रखें)। –

संबंधित मुद्दे

 संबंधित मुद्दे