2011-08-16 5 views
8

मैं नीचे दिए गए कोड का उपयोग कर कुकी बना रहा हूं, किसी अन्य पृष्ठ में txtusername मान को कैसे पढ़ूं और जब मैं साइन आउट (साइन आउट के लिए कोड) क्लिक करता हूं तो कुकी को कैसे हटाएं। मैं प्रोग्रामिंग के लिए नया हूँ कृपया मदद करें।साइन आउट पर क्लिक करने पर कुकी हटाएं

string cookiestr; 
      HttpCookie ck; 
      tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now, 
      DateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data"); 
      cookiestr = FormsAuthentication.Encrypt(tkt); 

      ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr); 
      if (chkPersistCookie.Checked) 
       ck.Expires = tkt.Expiration; 
      ck.Path = FormsAuthentication.FormsCookiePath; 
      Response.Cookies.Add(ck); 
+0

आप वास्तव में ऐसे ही अपने पूरे कोड जगह नहीं होनी चाहिए:

यहां एक नमूना है। यह वही सवाल नहीं है क्योंकि यह 11 मिनट पहले –

उत्तर

12

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

HttpCookie aCookie; 
    string cookieName; 
    int limit = Request.Cookies.Count; 
    for (int i=0; i<limit; i++) 
    { 
     cookieName = Request.Cookies[i].Name; 
     aCookie = new HttpCookie(cookieName); 
     aCookie.Expires = DateTime.Now.AddDays(-1); // make it expire yesterday 
     Response.Cookies.Add(aCookie); // overwrite it 
    } 
5

आप सीधे एक कुकी नहीं हटा सकते हैं, तो आप आज की तारीख से पहले समाप्त करने के लिए यह सेट करने के लिए:

if (Request.Cookies["clienDetails"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("clienDetails"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

आप इसे here के बारे में अधिक पढ़ सकते हैं।

इसके अलावा मैं आपको वास्तव में अपनी सुरक्षा लिखने के लिए प्रोत्साहित करता हूं लेकिन asp.net membership पर पढ़ने के लिए प्रोत्साहित करता हूं। उपयोग करने के लिए और अधिक सुरक्षित और आसान है। जैसा कि मैं आपके सुरक्षा मॉडल में कई त्रुटियों को देख सकता हूं। एक कुकी में सादे पाठ में पासवर्ड संग्रहीत करना वास्तव में वास्तव में बुरा है।

संपादित करें: अब आप अपने कोड बदल के रूप में, यदि आप ऐसा करने कुकी हटाने के लिए:

if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) 
{ 
    HttpCookie myCookie = new HttpCookie(FormsAuthentication.FormsCookieName); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

ठीक है धन्यवाद, लेकिन txtusername value को पढ़ने के लिए कैसे करें। कोड के नीचे काम करते समय मैंने पासवर्ड और ईमेल आईडी को एन्क्रिप्टेड किए बिना संग्रहीत किया (अनुरोध। कुकीज ["कुकिएनएम"]! = शून्य) { लेबल 8.Text = Request.Cookies ["cookiename"]। मान ["client_ID"]। ToString(); } – rookie

+0

@ गोकुल उपयोगकर्ता का प्रयास करें। Identity.Name –

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