У меня есть приложение ASP.net MVC 3 с использованием бритвы, а при использовании учетной записи AccountController по умолчанию для выхода из текущего пользователя я взял проблему с безопасностью. После того, как вы вышли из системы (_LogoutPartial view), я перенаправляюсь на страницу входа в систему. Хорошо, но когда я нажимаю «Назад» в браузере, он позволяет мне вернуться в веб-приложение и не просить меня войти в систему.Как очистить параметры маршрутизации MVC 3 при выходе из системы
Маршрут с параметрами выглядит следующим образом:
routes.MapRoute(
"Person", // Route name
"Person/{profileName}/{action}/{id}", // URL with parameters
new { controller = "Person", action = "Index", id = UrlParameter.Optional } // defaults
);
//example http://localhost:1946/Person/JoeBlack/ListTeamMembers
Кажется {ProfileName} по-прежнему активен в сеансе и позволяет вызов в контроллер (?). Однако действие контроллера {ListTeamMembers} имеет атрибут [Authorize()], поэтому я не уверен, как его разрешить пользователю ...
Нет, они просто видят страницу из кеша. Или вы не выходите из системы должным образом. –
Спасибо, Андрей. Означает ли это, что мне нужно проверять каждый метод Action, проверяя, есть ли активный сеанс пользователя, а если нет, перенаправляйтесь на логин? – Blyde
Это то, что делает атрибут Authorize. Проблема в том, что браузер не пытается загрузить страницу снова, как только они нажимают [назад], она просто показывает им кеш. Реализация политики кэширования защищенных действий контроллера не помогла бы. –