2010-05-19 27 views
9

In javascript alert (document.cookie); non mostra il .ASPXAUTH Cookie, anche se uno sniffer sta mostrando che,Dove si trova il cookie .ASPXAUTH

ne ho bisogno perché ho una richiesta AJAX al server, la richiesta non dovrebbe avvenire quando l'utente è già connesso,

se non posso controllare ASPXAUTH per motivi di sicurezza, che cosa devo fare per verificare se l'utente è già registrato.

Grazie

risposta

9

il cookie di autenticazione è contrassegnato con solo HTTP, che significa che non è possibile accedere da JavaScript. Se vuoi verificare che l'utente sia autenticato, invia semplicemente una variabile javascript, un campo nascosto o qualsiasi altra cosa preferisci dal tuo code-behind. Puoi quindi controllarlo facilmente in JS.

+2

Questo è meglio di impostare httpOnlyCookies su falso per motivi di sicurezza. – Costa

4

C'è un set di cookie .ASPXAUTH, si è ovviamente corretto. Viene utilizzato per determinare se un utente se loggato

per ottenere ciò che è necessario guardare oltre il vostro web.config per la sezione di configurazione:.

<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> 

Quando l'utente viene autenticato sarà impostato un cookie basato sul parametro name = "ExampleSite.FormsAuthentication". Scadrà dopo la disconnessione o al termine della sessione. Verrà visualizzato un cookie su Chrome/FFX o qualsiasi altro browser in uso denominato ExampleSite.FormsAuthentication con un valore crittografato. Ovviamente il parametro name che si sta utilizzando sarà diverso e non ExampleSite.FormsAuthentication ma si ottiene l'idea.

Si può sempre controllare e vedere se il cookie esiste. Come accennato, fai attenzione al solo http (in relazione a JS). Come puoi anche sovrascrivere quel valore nel web.config in modo da poterlo accedere con JS.

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