Je naviguerez sur le code source de FormsAuthentication, et se termine dans le remarquèrentPourquoi FormsAuthentication.RedirectFromLoginPage() se termine par context.Response.Redirect (..., false)?
context.Response.Redirect(strUrl, false);
Le paramètre « false » signifie « ne pas mettre fin à l'exécution de la page en cours ».
Pourquoi un appel à FormsAuthentication.RedirectFromLoginPage() ne doit-il pas aboutir à l'affichage de la page en cours? Quel est le comportement correct après avoir appelé cette méthode?
Donc, dans mon contrôleur, après avoir appelé FormsAuthentication.RedirectFromLoginPage, je devrais appeler Response.End? Ou renvoyer EmptyResult()? – ripper234
(Étant donné que je dois retourner quelque chose de l'action) – ripper234
Renvoie un résultat vide [ou un résultat ActionResult nul]. Si vous appelez Response.End() à partir d'une méthode d'action, les filtres de résultats que vous avez enregistrés seront ignorés. Dans un monde parfait, l'action retournerait un RedirectFromLoginResult, et son override ExecuteResult() contiendrait un appel à Response.Redirect(). En fait, le modèle AccountController par défaut d'ASP.NET MVC 2 ne fait que cela. – Levi