En una aplicación ASP.NET (2.0) utilizo FormsAuthentication.Es (HttpContext.Current.User! = Null) suficiente para suponer que FormsAuthentication ha autenticado al usuario
En el método Global.asax/Application_AuthenticateRequest, compruebo si HttpContext.Current.User es nulo.
¿Es esto suficiente para saber si existe la cookie de autenticación de formularios, el ticket no ha caducado y, en general, que el mecanismo de autenticación de formularios ha hecho su trabajo para validar al usuario?
Necesito esto, porque tengo ciertas páginas en esa aplicación, que a veces no necesitan autenticación para acceder (según algunos criterios), y las pongo en una directiva de "ubicación" separada en web.config con Para excluirlos de la autenticación de "capturar todos".
I.e. Estoy intentando verificar en Application_AuthenticateRequest si la página a la que se accede en esta "ubicación" necesita protección o no, y si es así, para saber si el usuario ya se ha autenticado o si debo redireccionar al inicio de sesión.
EDITAR: Como las respuestas sugieren, lo más probable es que vaya con IsAuthenticated. Con el fin de que agarre mejor, aquí hay 2 preguntas de bonificación :) (por favor, edite otras respuestas para añadir estos, gracias):
¿Puedo asumir que si IsAuthenticated es cierto, entonces HttpContext.Current. El usuario seguramente tendrá el nombre de usuario para el usuario autenticado.
¿Cómo puedo terminar con un "usuario anónimo" en HttpContext.Current.User, si se aplica FormsAuthentication, y solo unas pocas páginas están excluidas con la directiva "location"?
Lo prefiero cuando las credenciales del usuario son el único factor decisivo para autorizar el acceso a un recurso. ¿Quizás podría dividir la funcionalidad en dos páginas diferentes y permitir que ASP.NET maneje la seguridad? – Greg