J'ai une application MVC qui utilise [Authorize] pour protéger les bits privés. Lorsque je sélectionne l'URL SignOut(), elle me déconnecte, mais si j'appuie sur le bouton Précédent de mon navigateur, la page sécurisée me permet d'utiliser le formulaire. L'action a lieu et montre que je suis déconnecté. Le problème est qu'il effectue l'action sécurisée (insertion d'une ligne dans ma base de données). Ensuite, je peux utiliser le bouton retour et recommencer. Si j'utilise le bouton de retour après la déconnexion et que je clique sur l'actualisation du navigateur, cela signifie que je suis déconnecté et que je refuse l'accès à la page sécurisée.Utilisation du bouton de retour du navigateur après que SignOut() a autorisé l'accès à la page sécurisée (ASP.NET MVC)
Ai-je oublié quelque chose d'important? Il semble que ce pourrait être un très gros problème de sécurité.
public ActionResult LogOff(string ReturnUrl)
{
FormsAuth.SignOut();
if (!String.IsNullOrEmpty(ReturnUrl))
{
return Redirect(ReturnUrl);
}
else
{
return RedirectToAction("Index", "Page");
}
}
Avez-vous oublié d'enrouler [Authorize] autour de l'action que accepte le message (ci-dessus [AcceptVerbs (HttpVerbs.Post)]? – Langdon
Non, mais quand je suis retourné à avoir un regard que je l'avais comme ceci: \t \t [AcceptVerbs (HttpVerbs.Get)] \t \t [Authorize (rôles = "Administrateur")] et \t \t [AcceptVerbs (HttpVerbs .Message)] \t \t [Autoriser (Rôles = "Administrateur")] Lorsque je mets le drapeau Autoriser avant le AcceptVerbs pour Get et Post il me laisse toujours revenir au formulaire mais il ne me laisserait pas le poster . – mark123
Je voudrais toujours qu'il ne montre pas la forme sécurisée si elle permet de publier ou non. C'est un problème étrange. En utilisant la décoration [Autoriser] je ne devrais pas avoir à tester pour IsAuthenticated, devrais-je? If (! User.Identity.IsAuthenticated) \t \t \t if (! User.Identity.IsAuthenticated) {return RedirectToAction ("LogOn", "Compte");} – mark123