Comment obtenir la valeur de cookie sur le site asp.net

Je crée un cookie et enregistre la valeur du nom d’utilisateur après une connexion réussie. Comment puis-je accéder au cookie lorsque le site Web est ouvert? Si le cookie existe, je souhaite remplir la zone de texte du nom d’utilisateur à partir de la valeur du cookie. Et comment décrypter la valeur pour obtenir le nom d’utilisateur. Je fais la validation côté serveur en obtenant les détails de l’utilisateur à partir de la firebase database. J’utilise vs 2010 avec c #

FormsAuthenticationTicket tkt; ssortingng 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); } 

le cookie est créé avec le nom .YAFNET_Authentication et le contenu est crypté

Webconfig:

   

Vous pouvez utiliser la collection Request.Cookies pour lire les cookies.

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

FormsAuthentication.Decrypt prend la valeur réelle du cookie, pas son nom. Vous pouvez obtenir la valeur du cookie comme

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

et décrypter cela.

append cette fonction à votre global.asax

 protected void Application_AuthenticateRequest(Object sender, EventArgs e) { ssortingng 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; } ssortingng[] roles = authTicket.UserData.Split(new char[] { '|' }); FormsIdentity id = new FormsIdentity(authTicket); GenericPrincipal principal = new GenericPrincipal(id, roles); Context.User = principal; } 

alors vous pouvez utiliser HttpContext.Current.User.Identity.Name pour obtenir le nom d’utilisateur. J’espère que ça aide

 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"; } 

Référence Cliquez ici