example - webrequest post parameters c#
¿Cómo funciona Request.IsAuthenticated? (2)
Gracias a Google, encontré una versión en caché de la publicación @keyboardP se refiere en su respuesta . Estoy publicando esa respuesta / publicación aquí como referencia para otros ya que el enlace original está roto (2012-12-06).
Pregunta original a la que se refiere la respuesta a continuación:
Tengo una aplicación basada en formularios que me está adaptando. Noté que, en una ubicación donde la propiedad IsAuthenticated había sido True, ahora era falsa y no funcionaba como se esperaba. Me pregunto si tengo una configuración que no es válida.
¿Alguien me puede decir qué establece la propiedad IsAuthenticated en True? ¿Qué constituye el inicio de sesión?
Respuesta de Daniel Kent:
Request.IsAuthenticated
no es solo para la autenticación de formularios, es válida sin importar qué tipo de autenticación se esté utilizando (Windows, Pasaporte, Formularios o nuestro propio esquema personalizado)
HttpRequest.IsAuthenticated
cumplirá cuando el usuario que realiza la solicitud haya sido autenticado. Esencialmente, esta propiedad proporciona la misma información que Context.User.Identity.IsAuthenticated
.
Al inicio de una solicitud, Context.User.Idenity
contiene un GenericIdentity
con un nombre de usuario nulo. La propiedad IsAuthenticated
para este objeto devolverá false
por lo que Request.IsAuthenticated
será false
. Cuando un módulo de autenticación controla el evento Application_AuthenticateRequest
y autentica con éxito al usuario, reemplaza GenericIdentity
in Context.User.Identity
con un nuevo objeto IIdentity
que devolverá true
desde su propiedad IsAuthenticated
. Request.IsAuthenticated
devolverá true
.
En el caso de la autenticación de formularios, el módulo de autenticación de formularios utiliza el ticket de autenticación cifrado contenido en la cookie de autenticación para autenticar al usuario. Una vez que ha hecho esto, reemplaza GenericIdentity
en Context.User.Identity
con un objeto FormsIdentity
que devuelve True
de su propiedad IsAuthenticated
.
Por lo tanto, establecer IsAuthenticated
en true
es realmente diferente al inicio de sesión. Como dice Jeff, el inicio de sesión en la autenticación de formularios ocurre cuando el ticket de autenticación se genera y se envía al cliente como una cookie. ( RedirectFromLoginPage
o SetAuthCookie
) De lo que estamos hablando con IsAuthenticated
es la autenticación que ocurre con cada solicitud de página. El inicio de sesión ocurre cuando un usuario ingresa sus credenciales y se le emite un ticket, la autenticación ocurre con cada solicitud.
Descripción de ejemplo de código de MSDN: el siguiente ejemplo de código utiliza la propiedad IsAuthenticated para determinar si la solicitud actual se ha autenticado. Si no se ha autenticado, la solicitud se redirige a otra página donde los usuarios pueden ingresar sus credenciales en la aplicación web. Esta es una técnica común utilizada en la página predeterminada para una aplicación.
Esto es genial pero sin detalles ni nada ...
¿Qué es exactamente lo que está comprobando? ¿Cómo lo pongo en verdadero?
Vaya más allá: ¿Dónde podría encontrar documentación más detallada sobre esto?
Hay un post bastante detallado por Daniel Kent here . (Retazo)
Request.IsAuthenticated no es solo para la autenticación de formularios, es válida sin importar qué tipo de autenticación se esté utilizando (Windows, Pasaporte, Formularios o nuestro propio esquema personalizado)
HttpRequest.IsAuthenticated se cumplirá cuando el usuario que realiza la solicitud haya sido autenticado. Esencialmente, esta propiedad proporciona la misma información que Context.User.Identity.IsAuthenticated.