Necesito redirigir a los usuarios a la página Cambiar contraseña si su contraseña ha expirado.¿Dónde debo colocar un cheque que pueda redirigir una solicitud?
Quiero colocar este código en un solo lugar para que cualquier solicitud pueda redirigirse a la página de cambio de contraseña.
He intentado ampliar AuthorizeAttribute y reemplazar OnActionExecuting, pero ninguno funciona/me permite cortocircuitar la lógica de enrutamiento para redireccionar a la página de cambio de contraseña.
Para una pequeña aclaración, la lógica sería:
petición no autorizado:
-> cualquier URL -> AuthorizeAttribute -> Login.aspx -> contraseña ha caducado -> ChangePassword.aspx
solicitud autorizada :
-> cualquier URL ->??????? -> ChangePassword.aspx
¿Es eso ???? parte de que no estoy seguro de qué hacer.
Creo que voy a ir con extender el AuthorizeAttribute. Lo usaré en todas partes excepto los métodos del controlador de cambio de contraseña.
Esto es esencialmente lo que fui. – Will
Sé que esta es una respuesta anterior, así que pensé en agregar que (al menos para MVC3) 'filterContext.HttpContext.Response.Redirect (" ~/Account/ChangePassword? Reason = expired ");' debería reemplazarse por ' filterContext.Result = new RedirectResult ("~/Account/ChangePassword? reason = expired"); '(Basado en: http://stackoverflow.com/a/2187364/700926 y http://stackoverflow.com/a/2765148/700926) –