Devo reindirizzare gli utenti alla pagina Cambia password se la loro password è scaduta.Dove dovrei effettuare un controllo che potrebbe reindirizzare una richiesta?
Desidero inserire questo codice in un'unica posizione in modo che qualsiasi richiesta possa essere reindirizzata alla pagina di modifica della password.
Ho cercato di estendere l'AuthorizeAttribute e di eseguire l'override di OnActionExecuting, ma nessuno dei due funziona/mi consente di cortocircuitare la logica di routing per reindirizzare alla pagina di modifica della password.
Per un piccolo chiarimento, la logica sarebbe:
richiesta non autorizzata:
-> qualsiasi URL -> AuthorizeAttribute -> Login.aspx -> password scaduta -> ChangePassword.aspx
richiesta autorizzato :
-> qualsiasi URL ->??????? -> ChangePassword.aspx
E che ???? parte che non sono sicuro di cosa fare.
Penso che andrò ad estendere l'AuthorizeAttribute. Lo userò ovunque eccetto i metodi del controller di modifica della password.
Questo è essenzialmente ciò che sono andato con. – Will
So che questa è una vecchia risposta, quindi ho pensato di aggiungere (almeno per MVC3) 'filterContext.HttpContext.Response.Redirect (" ~/Account/ChangePassword? Reason = expired ");' deve essere sostituito da ' filterContext.Result = new RedirectResult ("~/Account/ChangePassword? reason = expired"); '(Basato su: http://stackoverflow.com/a/2187364/700926 e http://stackoverflow.com/a/2765148/700926) –