2012-01-30 26 views
5

सहेजते समय सत्र खो गया सफल लॉगिन पर मैं एक कुकी को सहेजना चाहता हूं जिसमें उपयोगकर्ता नाम शामिल है।कुकी

कुकी सही ढंग से सहेजती है और उपयोगकर्ता नाम को सही तरीके से लोड करती है लेकिन सत्र खो देती है!

उपयोगकर्ता नाम पुनर्प्राप्त करने के लिए कोड है:

if (Request.Cookies["userName"] != null) 
{ 
    txtEmail.Text = Request.Cookies["username"].Value; 
    chkRemember.Checked = true; 
} 

उपयोगकर्ता नाम को बचाने के लिए कोड है:

HttpCookie aCookie = new HttpCookie("username"); 
aCookie.Value = txtEmail.Text; 
aCookie.Expires = DateTime.Now.AddYears(5); 
Response.Cookies.Add(aCookie); 

किसी भी मदद की बहुत सराहना की जाएगी, आप एक जंगली शॉट के

+3

सत्र से आपका क्या मतलब है? एएसपी.नेट सत्र? या प्रमाणीकरण सत्र बनाते हैं? इसके अलावा आप वास्तव में क्या कार्य कर रहे हैं? क्या आप ब्राउज़र को बीच में बंद कर रहे हैं? –

+0

लॉगिन फॉर्म से अगले फॉर्म में नेविगेट करते समय ASP.NET सत्र रीसेट किया जा रहा है। यह उपरोक्त कोड जोड़ने के बाद ही है। –

+0

क्या उपरोक्त कोड लॉगिन फॉर्म में है, या कहीं और? – M3NTA7

उत्तर

1

मैं हाल ही में एक लेख है कि सुझाव दिया पृष्ठ नाम में अंडरस्कोर पैदा कर सकता है कि कुकीज़ में समस्याओं, मैं इस में देखा नहीं किया है, लेकिन यह जाँच के लायक हो सकता है देखा।

वैकल्पिक रूप से, क्या आप अपनी कुकीज़ को साफ़ कर रहे हैं यदि उपयोगकर्ता याद रखने का विकल्प नहीं चुनता है?

मैंने हाल ही में एमएसडीएन पर एक पुराना उदाहरण देखा है जो डिलीट विधि दिखा रहा है जो आपके सत्र को मिटा देगा ... read the article

यदि ऐसा है तो केवल लॉगिन के लिए कुकी को हटाना सुनिश्चित करें अन्यथा आप सत्री युक्त कुकी खो रहे हैं।

एक (बहुत) लेख कोड की कोई तिथि नहीं में त्वरित अनुवाद:

for (int i = 0; i < limit; i++) 
    { 
     cookieName = Request.Cookies[i].Name; 
     aCookie = new HttpCookie(cookieName); 
     aCookie.Expires = DateTime.Now.AddDays(-1); 
     Response.Cookies.Add(aCookie); 
    } 
कुकी नाम पर एक जाँच जोड़ने समाधान किया जा रहा है के साथ

for (int i = 0; i < limit; i++) 
    { 
     cookieName = Request.Cookies[i].Name; 
     if (cookieName == "username") 
     { 
      aCookie = new HttpCookie(cookieName); 
      aCookie.Expires = DateTime.Now.AddDays(-1); 
      Response.Cookies.Add(aCookie); 
     } 
    } 

यह भी भूलें कि आप कुकीज़ के भीतर उपकुंजियों का उपयोग कर सकते हैं।

+0

उत्कृष्ट धन्यवाद, जब मैं 'नाम यादृच्छिक' याद नहीं कर रहा था, तो सत्र चर खो रहे थे, मैं सत्र आईडी समेत सभी कुकी ऑब्जेक्ट्स को हटा रहा था। फिर से धन्यवाद। –

2

बिट धन्यवाद , लेकिन क्या आप https से http पर जा रहे हैं? जैसे लॉगिन फॉर्म https है, निम्नलिखित पृष्ठ http

यदि ऐसा है तो अधिकांश ब्राउज़र सत्र कुकीज़ को हटा देंगे।

धन्यवाद, फ्रान

+0

https का उपयोग नहीं कर रहा है, यह लागू नहीं होता है। धन्यवाद। –

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