2010-05-19 19 views
9

En javascript alert (document.cookie); no muestra el .ASPXAUTH Cookies aunque un sniffer está mostrando,Dónde está la cookie .ASPXAUTH

lo necesito porque tengo una petición Ajax al servidor, la solicitud no debería tener lugar cuando el usuario ya está conectado,

si no puedo comprobar .ASPXAUTH por razones de seguridad, lo que debería hacer para comprobar si el usuario ya está conectado.

Gracias

Respuesta

9

la cookie de autenticación está marcado con sólo HTTP, lo que significa que no se puede acceder mediante javascript. Si desea verificar si el usuario está autenticado, simplemente envíe una variable de JavaScript, un campo oculto o lo que prefiera de su código subyacente. A continuación, puede verificar esto fácilmente en JS.

+2

Esto es mejor que establecer httpOnlyCookies en falso por razones de seguridad. – Costa

4

Hay un conjunto de cookies .ASPXAUTH, obviamente es correcto. Se utiliza para determinar si un usuario si conectado

para conseguir lo que necesita mirar por encima de su web.config de la sección de configuración:.

<authentication mode="Forms"> 
     <forms 
       loginUrl="~/login.aspx" 
       protection="All" 
       timeout="30" 
       name="ExampleSite.FormsAuthentication" 
       path="/" 
       requireSSL="false" 
       slidingExpiration="true" 
       defaultUrl="index.aspx" 
       cookieless="UseDeviceProfile" 
       enableCrossAppRedirects="false" 
       /> 
    </authentication> 

Cuando el usuario se autentica correctamente se establecerá una cookie basado en el parámetro name = "ExampleSite.FormsAuthentication". Caducará después de cerrar sesión o después de que la sesión expire. Verá una cookie en Chrome/FFX o en cualquier navegador que esté utilizando llamado ExampleSite.FormsAuthentication con un valor encriptado. Obviamente, el parámetro de nombre que está utilizando será diferente y no ExampleSite.FormsAuthentication, pero se entiende la idea.

Siempre puede verificar y ver si existe la cookie. Como se mencionó, tenga cuidado con el http-only (con relación a JS). Como también puede anular ese valor en el archivo web.config para que pueda acceder a él con JS.

<httpCookies httpOnlyCookies="false" requireSSL="false" domain="" /> 
Cuestiones relacionadas