Я знаю, что об этом спрашивали и отвечали много раз ранее, поверьте мне, я просматривал все сообщения в поисках решения, прежде чем снова спросить .
Если пользователь заходит на страницу, берет копию URL-адреса, выходит из системы, а затем вставляет URL-адрес обратно в браузер, он может получить доступ к странице, которую он ранее посещал, очень быстро, прежде чем браузер перенаправит на страницу входа. еще раз. Во время этого краткого окна, если они достаточно быстры с помощью мыши и могут нажать на кнопку или другой элемент управления, они каким-то образом возвращаются на сайт, без вопросов.
Я попытался включить следующее предложение кода из другого потока по теме в каждое событие Page_Load, чтобы избежать кэширования, но безуспешно.
private void ExpirePageCache()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0));
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetAllowResponseInBrowserHistory(false);
}
Код из logout.aspx выглядит следующим образом:
protected void Page_Load(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
Response.Redirect("~/Account/Login.aspx");
}
Должен ли я использовать Server.Transfer()
вместо Response.Redirect()
?
Я где-то читал, что мне не разрешают очищать историю браузера программно, поэтому я немного застрял. У кого-нибудь есть подсказки, пожалуйста?