2011-08-28 17 views
31

Sabemos que la cookie de autenticación de formulario está encriptada. entonces, ¿cómo leer el contenido de la cookie de autenticación de mi código?Lea la cookie de autenticación de formulario del código asp.net detrás de

if (Request.Cookies[".ASPXAUTH"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie(".ASPXAUTH"); 
} 
+0

posible duplicado http://stackoverflow.com/questions/2921387/get-the-aspxauth-cookie-value-programatically – xsari3x

Respuesta

72

Se puede acceder al boleto con el método proporcionado por descifrar FormsAuthentication

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value); 

string cookiePath = ticket.CookiePath; 
DateTime expiration = ticket.Expiration; 
bool expired = ticket.Expired; 
bool isPersistent = ticket.IsPersistent; 
DateTime issueDate = ticket.IssueDate; 
string name = ticket.Name; 
string userData = ticket.UserData; 
int version = ticket.Version; 
+0

Cómo extraer datos del ticket ... supongamos que creo una cookie de autenticación de la siguiente manera. FormsAuthenticationTicket billete = new FormsAuthenticationTicket ( 1, nombre de usuario, DateTime.Now, DateTime.Now.AddMinutes (30), isPersistent, userdata FormsAuthentication.FormsCookiePath); Entonces, ¿cómo obtener los datos anteriores del ticket después del descifrado? por favor guíame ....... gracias – Thomas

+0

Después del descifrado, puede acceder a las propiedades directamente en el boleto. Esto muestra la lista de propiedades: http://msdn.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx. Actualicé la respuesta con un ejemplo de acceso a los datos en el ticket. – RyanW

+0

solo un error tipográfico: ticket.IsPersistant debe ser ticket.IsPersistent – Raghav

Cuestiones relacionadas