Tengo una aplicación MVC que utiliza [Autorizar] para proteger los bits privados. Cuando selecciono la URL de SignOut(), me cierra la sesión, pero si presiono el botón Atrás en mi navegador, irá a la página segura e incluso me permitirá usar el formulario. La acción tiene lugar y luego muestra que he cerrado la sesión. El problema es que realiza la acción segura (insertando una fila en mi base de datos). Entonces puedo usar el botón Atrás otra vez y hacerlo todo de nuevo. Si utilizo el botón Atrás después de cerrar la sesión y presiono la actualización del navegador, se muestra que estoy desconectado y me niega el acceso a la página segura.Usar el botón Atrás del navegador después de que SignOut() permita el acceso a la página segura (ASP.NET MVC)
¿Falta algo importante? Parece que podría ser un gran problema de seguridad.
public ActionResult LogOff(string ReturnUrl)
{
FormsAuth.SignOut();
if (!String.IsNullOrEmpty(ReturnUrl))
{
return Redirect(ReturnUrl);
}
else
{
return RedirectToAction("Index", "Page");
}
}
Olvidó envolver [Autorizar] en torno a la acción que acepta la publicación (arriba [AcceptVerbs (HttpVerbs.Post)]? Sin – Langdon
pero cuando volvió a tener una mirada que tenía la siguiente manera: \t \t [AcceptVerbs (HttpVerbs.Get)] \t \t [Autorizar (Roles = "Administrador")] y \t \t [AcceptVerbs (HttpVerbs .Publicación)] \t \t [Autorizar (Roles = "Administrador")] Cuando coloco el distintivo de Autorizar antes de AcceptVerbs tanto para Obtener como Publicar, todavía me permite volver al formulario pero no me deja publicarlo . – mark123
Todavía me gustaría que no muestre la forma segura si le permite publicarla o no. Este es un problema extraño. Al utilizar la decoración [Autorizar], no debería tener que hacer una prueba para IsAuthenticated, ¿o sí? \t \t \t if (! User.Identity.IsAuthenticated) {return RedirectToAction ("LogOn", "Account");} – mark123