2012-05-20 4 views
0

У меня есть приложение 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()], поэтому я не уверен, как его разрешить пользователю ...

+0

Нет, они просто видят страницу из кеша. Или вы не выходите из системы должным образом. –

+0

Спасибо, Андрей. Означает ли это, что мне нужно проверять каждый метод Action, проверяя, есть ли активный сеанс пользователя, а если нет, перенаправляйтесь на логин? – Blyde

+1

Это то, что делает атрибут Authorize. Проблема в том, что браузер не пытается загрузить страницу снова, как только они нажимают [назад], она просто показывает им кеш. Реализация политики кэширования защищенных действий контроллера не помогла бы. –

ответ

1

Когда вы нажимаете кнопку «Назад» в своем браузере, последняя страница извлекается из кеш браузера. Сервер никогда не попадает. Пользователь больше не аутентифицирован. Это означает, что если он попытается выполнить какое-либо действие и отправит HTTP-запрос, он будет перенаправлен на страницу LogOn. Способ предотвратить это происходит путем исключения всех аутентифицированных страниц из кеша браузера клиента. У вас может быть custom NoCache action filter для этой работы.

Смежные вопросы