Это очень известные вопросы в Google.Я нашел несколько предложений для достижения этой функции.Процедура, которую я реализовал, описана ниже:
Я добавил ссылку выхода из системы на домашней странице и, щелкнув по этой ссылке, я перенаправляю пользователя на страницу выхода из системы.
protected void LinkButton1_Click(object sender, EventArgs e) {
Response.Redirect("../Logout.aspx");
}
Сейчас вLogout.aspx, который я добавил:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");
в коде метода Page_Load позади.
Также я добавил asp:ScriptManager
и asp:Timer
к этому Logout.aspx
:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick" >
</asp:Timer>
Метод Timer1_Tick:
protected void Timer1_Tick(object sender, EventArgs e) {
FormsAuthentication.SignOut();
Session.Abandon();
FormsAuthentication.RedirectToLoginPage();
}
Этоперенаправление на Login.aspx
с Logout.aspx
.Также я добавил следующий метод JavaScript в Logout.aspx
:
function disableBackButton() {
window.history.forward(1);
}
disableBackButton();
window.onload = disableBackButton();
window.onpageshow = function (evt) { if (evt.persisted) disableBackButton() }
window.onunload = function () { void (0) }
И он работает, только если я нажимаю кнопку «Назад» или нажимаю несколько раз с паузой.Но если на него нажимают несколько раз подряд, то меня снова помещают на домашнюю страницу.
Как я могу решить эту проблему?