Je dois rediriger les utilisateurs vers la page Modifier le mot de passe si leur mot de passe a expiré.Où dois-je placer un chèque pouvant rediriger une demande?
Je souhaite placer ce code au même endroit afin que toute demande puisse être redirigée vers la page de modification du mot de passe.
J'ai envisagé d'étendre AuthorizeAttribute, et de surcharger OnActionExecuting, mais ni travailler ni me permettre de court-circuiter la logique de routage pour rediriger vers la page de changement de mot de passe.
Pour une petite précision, la logique serait:
demande non autorisée:
-> une URL -> AuthorizeAttribute -> Login.aspx -> Mot de passe expiré -> ChangePassword.aspx
demande autorisée :
-> n'importe quelle URL ->??????? -> ChangePassword.aspx
C'est ça ???? part que je ne suis pas sûr de ce qu'il faut faire.
Je pense que je vais aller avec l'extension AuthorizeAttribute. Je vais utiliser cela partout sauf les méthodes de contrôleur de changement de mot de passe.
C'est essentiellement ce que je suis allé avec. – Will
Je sais que c'est une vieille réponse, donc j'ai pensé que j'ajouterais que (au moins pour MVC3) 'filterContext.HttpContext.Response.Redirect (" ~/Account/ChangePassword? Raison = expiré ");' devrait être remplacé par ' filterContext.Result = new RedirectResult ("~/Account/ChangePassword? raison = expiré"); '(Basé sur: http://stackoverflow.com/a/2187364/700926 et http://stackoverflow.com/a/2765148/700926) –