La información sobre el usuario que se está autenticando se almacena en el FormsAuthenticationTicket
en una cookie, por defecto se llama .ASPXAUTH.
La información sobre la sesión de un usuario está separada de la información sobre la autenticación. El identificador de la sesión puede almacenarse en una cookie (una cookie diferente de la cookie de autenticación) o, como ha señalado Henk, en una sesión sin cookies, es decir, como parte de la URL.
El problema con el almacenamiento de información sobre la autenticación en la sesión de un usuario es que la sesión no está disponible hasta después del evento de autenticación (5 eventos más tarde IIRC) en el canal de procesamiento, en PostAcquireRequestState
. ¡Esto significa que no tendrá acceso a los datos de autenticación en sesión hasta después de la autenticación!
Es posible almacenar datos en sesión y sobrescribir IIdentity
y IPrincipal
con esos datos, pero esto significa que la identidad del usuario tendrá algunos datos para los eventos antes de que la sesión esté disponible y datos diferentes para los eventos después de la sesión. disponible, que puede o no ser un problema. Además, es probable que desee proteger criptográficamente los datos en sesión de alguna manera.
Para responder a su pregunta sobre el título, la autenticación de formularios no requiere sesión; son entidades distintas requeridas para diferentes propósitos.
+1 Gracias por hacer la prueba de concepto –