[2.0] FormsAuthentication e SessionId

venerdì 27 gennaio 2006 - 17.56

D79 Profilo | Junior Member

Utilizzo il FormsAuthentication per effettuare il login.
purtroppo però il metodo FormsAuthentication.SignOut() non mi cancella automaticamente il Session.SessionID

Come posso far sì che al logout mi annulla l'id della sessione?

Brainkiller Profilo | Guru

>Utilizzo il FormsAuthentication per effettuare il login.
>purtroppo però il metodo FormsAuthentication.SignOut() non mi
> cancella automaticamente il Session.SessionID

Prova con Session.Abandon()

Naturalmente all'apertura di uan nuova pagina prenderai un nuovo SessionID

Ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

D79 Profilo | Junior Member

no, ho provato già tutti i metodi esistenti della session e non funzionano

----
il mio sito: http://it.geocities.com/chuck_dust/

Brainkiller Profilo | Guru

>no, ho provato già tutti i metodi esistenti della session e non
> funzionano

Non è possibile che Abandon() non funzioni evidentemente hai diverse impostazioni nel Web.Config, guarda cosa dice la documentazione del metodo Abandon:

Once Abandon is called, the current session is no longer valid and a new session can be started. Abandon causes the End event to be raised (a new Start event is raised on the next request). The End event is supported only when Mode is InProc.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

D79 Profilo | Junior Member

questo è interessante:
http://msdn2.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.iscookieless.aspx

By default, session identifiers used in cookieless sessions are recycled. That is, if a request is made with a session ID that has expired, a new session is started using the session ID supplied with the request. This behavior can result in the unwanted sharing of session data when a link that contains a cookieless session ID is shared with multiple browsers, perhaps through a search engine or other program. You can reduce the possibility of session data being shared by multiple clients by disabling the recycling of session identifiers. To do this, set the regenerateExpiredSessionId attribute of the sessionState configuration element to true.

Ho risolto così:
- nel logout ho Session.Abandon
- nel web.config ho:
<sessionState regenerateExpiredSessionId="true" cookieless="true" >
</sessionState>

se trovate un altro modo sono curioso di saperlo... grazie a tutti!

----
il mio sito: http://it.geocities.com/chuck_dust/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5