Estoy experimentando con FormsAuthentication (usando ASP.NET MVC2) y está funcionando bastante bien.Invalidando ASP.NET FormsAuthentication server side
Sin embargo, un caso que no puedo resolver es cómo validar la identidad del usuario en el servidor para garantizar que siga siendo válida desde la perspectiva del servidor.
por ejemplo.
- usuario se conecta ... consigue una galleta/billete
- fuera de banda se elimina el usuario en el servidor
- usuario hace una nueva petición al servidor. HttpContext.User.Identity.Name se establece en el usuario eliminado.
puedo detecto esta muy bien, pero ¿cuál es la forma correcta de manejar la situación? Llamar a FormsAuthentication.SignOut
en el OnAuthorization
en OnActionExecuting
eventos es demasiado tarde para afectar la solicitud actual.
Como alternativa, me gustaría poder llamar a FormsAuthentication.InvalidateUser (...) cuando se elimina al usuario (o se recrea la base de datos) para invalidar todos los tickets para un determinado (o todos) los usuarios. Pero no puedo encontrar una API para hacer esto.
¿La función UserStillValid verificará que el usuario esté activo en db o no? ¿Cuál es el significado de Thread.CurrentPrincipal = anonymousPrincipal y HttpContext.Current.User = anonymousPrincipal; – Thomas