2010-06-23 4 views
10

ब्राउज़र बंद होने के बाद कुकी को जारी रखने के लिए आवश्यक सटीक कदम क्या हैं? फिलहाल मेरे पास है: LoggedIn घटना पर true कोब्राउज़र बंद होने के बाद प्रमाणीकरण/सत्र कुकी हटाना

  1. createPersistentCookie सेट।
  2. मशीनकी निर्दिष्ट।
  3. फॉर्म स्लाइडिंग समाप्ति true पर सेट करें।

जब तक ब्राउज़र खुला रहता है, उपयोगकर्ता लॉग इन रहेगा, लेकिन जैसे ही यह बंद हो जाएगा, और इससे कोई फ़र्क नहीं पड़ता कि उपयोगकर्ता को फिर से लॉग इन करने की आवश्यकता होगी। मैं क्या खो रहा हूँ?

संपादित करें: मैं चला गया के माध्यम से लेख (नीचे टिप्पणी देखें) marapet द्वारा बताया और यह मेरे में है कि क्या वास्तव में टिकट जो यह करता है IsPersistent झंडा है, रुचि बना दिया। डिक्रिप्टेड टिकट इस तरह दिखता है: System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value) {System.Web.Security.FormsAuthenticationTicket} CookiePath: "/" Expiration: {19/08/2010 17:27:14} Expired: false IsPersistent: true IssueDate: {19/07/2010 17:27:14} Name: "alex" UserData: "" Version: 2 सभी विवरण सही हैं, और लॉग इनइन ईवेंट में सेट किए गए लोगों के अनुरूप हैं। कुकी मूल्य से अधिक मैं सीधे कुकी से पुनर्प्राप्त कर सकता हूं, यह एक जैसा है। फिर भी जैसे ही मैं ब्राउज़र बंद करता हूं, कुकी खो जाती है।

मैंने जो देखा है, वह यह है कि टिकट ले जाने वाली कुकी के पास किसी कारण से रीसेट की तारीख है। सबसे पहले मैं web.config में सेटिंग्स को ओवरराइड नहीं कर सकता, इसलिए LoggedIn ईवेंट के अंत में यह समाप्त हो जाता है, संपत्ति की तारीख के बाद 4000 मिनट की अवधि होती है, न कि एक महीने जिसे मैं प्रोग्रामेटिक रूप से सेट कर रहा हूं। फिर पृष्ठ को लोड करने के बाद मैं फॉर्म्स प्रमाणीकरण के साथ पुनर्प्राप्त करता हूं। फोरसकुकी नाम 01/01/0001 की संपत्ति समाप्त कर देता है। मुझे लगता है शायद यह वह जगह है जहां समस्या निहित है? किसी भी विचार की सराहना की जाएगी।

संपादित करें # 2: मैं, दोनों शीर्षक और टैग को बदलने हूँ के रूप में यह पता चला समस्या के लिए प्रासंगिक होने के लिए सत्र शामिल करने के लिए/समाधान

उत्तर

10

तो मुझे अंततः समाधान मिला। जैसा कि यह पता चला है, यह प्रमाणीकरण कुकी के साथ समस्या नहीं थी (इसे सही ढंग से बनाए रखा गया था, या अगर होता है तो हैंडलर ने इसे हटाया नहीं है, गलत तरीके से फैसला किया है कि उपयोगकर्ता लॉग इन नहीं है लापता सत्र)। समस्या यह थी कि सत्र कुकी खो गई थी, या ठीक से पहचाना नहीं गया था। तो ठीक को मैन्युअल रूप से की तरह लॉग पर के दौरान एक सत्र कुकी को जोड़ने के लिए किया गया था:

HttpCookie authCookie = new HttpCookie("ASP.NET_SessionId", Session.SessionID); 
authCookie.Domain = ".mydomain.com"; 
authCookie.Expires = DateTime.Now.AddMonths(1); 
Response.Cookies.Add(authCookie); 

अब जब ब्राउज़रों खोलता है फिर से सत्र ठीक से पहचान की है और उपयोगकर्ता सत्र को बहाल किया।

+2

इसने मेरी समस्या को भी हल किया। यदि आप डोमेन छोड़ देते हैं तो क्लाइंट ब्राउज़र इसे वर्तमान डोमेन पर डिफ़ॉल्ट कर देगा। – jhappoldt

0

एक लगातार रूपों प्रमाणीकरण कुकी खारिज नहीं किया जाना चाहिए जब ब्राउज़र बंद कर देता है। यह web.config में परिभाषित टाइमआउट मान के लिए मान्य रहता है।

हालांकि, कुछ ब्राउज़रों को सत्र के अंत में सभी कुकीज़ को त्यागने के लिए कॉन्फ़िगर किया जा सकता है - आप अपने ब्राउज़र की सेटिंग्स (फ़ायरफ़ॉक्स: टूल्स - विकल्प - गोपनीयता) की जांच कर सकते हैं।

+0

यह एक ब्राउज़र विशिष्ट बात नहीं है, यह सभी ब्राउज़रों में होता है। सेटिंग के साथ शायद यह और अधिक है कि मैंने कहीं अनदेखा किया होगा। टाइमआउट भी अप्रासंगिक है, क्योंकि अगर मैं लगभग 10 के भीतर ब्राउजर को बंद और खोलता हूं तो कुकीज़ नहीं होती है। – Shagglez

+0

जब लॉग इनइन इवेंट आग लगती है, तो कुकी पहले ही बनाई गई है। साथ ही, सुनिश्चित करें कि आप web.config में टाइमआउट मान निर्दिष्ट करते हैं। मैं आमतौर पर प्रमाणीकरण कुकी स्वयं बनाते हैं। कुकी के स्वचालित निर्माण को रोकने के लिए लॉगिंगइन इवेंट का उपयोग करके एक लेख है: http: //blogs.msdn।कॉम/बी/स्वाथिस/संग्रह/200 9/04/03/फॉर्म-प्रमाणीकरण-समस्या-याद-मुझे-काम-कार्य-उपयोगकर्ता-प्रोफ़ाइल-भूमिकाएं-नहीं-सहेजी गई नहीं हैं .aspx – marapet

+0

टिप्पणी के लिए धन्यवाद, मैं लेख पर चला गया और कुछ जांच की। मेरे मामले में प्रमाणीकरण टिकट में सभी पृष्ठों पर IsPersistent प्रॉपर्टी सेट की गई है (और मैंने मैन्युअल रूप से भविष्य में दूर होने की समाप्ति को बदल दिया है), इसलिए ऐसा नहीं है कि यह ठीक से सेट नहीं हो रहा है। जैसे ही मैं ब्राउज़र बंद करता हूं, यह चला गया है। – Shagglez

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

  • कोई संबंधित समस्या नहीं^_^