httpget example data create c# asp.net httprequest

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.