2011-12-13 6 views
25

में कुकी मान कैसे प्राप्त करें मैं एक कुकी बना रहा हूं और succesfull लॉगिन के बाद उपयोगकर्ता नाम के मूल्य को संग्रहीत कर रहा हूं। वेबसाइट खोले जाने पर मैं कुकी तक कैसे पहुंच सकता हूं। यदि कुकी मौजूद है तो मैं कुकी मान से उपयोगकर्ता नाम टेक्स्ट बॉक्स भरना चाहता हूं। और उपयोगकर्ता नाम प्राप्त करने के लिए मान को डिक्रिप्ट कैसे करें। मैं डेटाबेस से उपयोगकर्ता विवरण प्राप्त करके सर्वर साइड सत्यापन कर रहा हूं। मैं VS 2010 उपयोग कर रहा हूँ ग # साथएएसपीनेट वेबसाइट

FormsAuthenticationTicket tkt; 
string cookiestr; 
HttpCookie ck; 
tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now, 
    DateTime.Now.AddYears(1), chk_Rememberme.Checked, "User Email"); 
cookiestr = FormsAuthentication.Encrypt(tkt); 
ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr); 

if (chk_Rememberme.Checked) 
{ 
    ck.Expires = tkt.Expiration; 
    ck.Path = FormsAuthentication.FormsCookiePath; 
    Response.Cookies.Add(ck); 
} 

कुकी .YAFNET_Authentication के रूप में नाम के साथ बनाया गया है और सामग्री

Webconfig एन्क्रिप्टेड है:

<forms name=".YAFNET_Authentication" loginUrl="Home.aspx" 
    protection="All" timeout="15000" cookieless="UseCookies"/> 

उत्तर

57

आप Request.Cookies संग्रह का उपयोग कर सकते कुकीज़ को पढ़ने के लिए।

if(Request.Cookies["key"]!=null) 
{ 
    var value=Request.Cookies["key"].Value; 
} 
13

फॉर्म प्रमाणीकरण। डिक्रिप्ट कुकी का वास्तविक मूल्य लेता है, इसका नाम नहीं। आप कुकी मूल्य जैसे

HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value; 

और उसे डिक्रिप्ट कर सकते हैं।

7

अपने Global.asax

protected void Application_AuthenticateRequest(Object sender, EventArgs e) 
{ 
    string cookieName = FormsAuthentication.FormsCookieName; 
    HttpCookie authCookie = Context.Request.Cookies[cookieName]; 

    if (authCookie == null) 
    { 
     return; 
    } 
    FormsAuthenticationTicket authTicket = null; 
    try 
    { 
     authTicket = FormsAuthentication.Decrypt(authCookie.Value); 
    } 
    catch 
    { 
     return; 
    } 
    if (authTicket == null) 
    { 
     return; 
    } 
    string[] roles = authTicket.UserData.Split(new char[] { '|' }); 
    FormsIdentity id = new FormsIdentity(authTicket); 
    GenericPrincipal principal = new GenericPrincipal(id, roles); 

    Context.User = principal; 
} 

को यह समारोह जोड़ने तो आप HttpContext.Current.User.Identity.Name का उपयोग उपयोगकर्ता नाम पाने के लिए कर सकते हैं। आशा है कि यह मदद करता है

0
HttpCookie cook = new HttpCookie("testcook"); 
cook = Request.Cookies["CookName"]; 
if (cook != null) 
{ 
    lbl_cookie_value.Text = cook.Value; 
} 
else 
{ 
    lbl_cookie_value.Text = "Empty value"; 
} 

संदर्भ Click here