我在用戶登錄時在會話中存儲用戶名和密碼。註銷後,當我按下瀏覽器的「返回」按鈕時,它會再次進入用戶的主頁。我希望會話必須過期,以便在用戶按下返回按鈕後註銷後,他會重新登錄到登錄頁面。註銷後會話不會過期
我已經嘗試
Session.RemoveAll();
Session.Abandon();
Session.Remove("StoreUser");
StoreUser是一個包含用戶名和密碼的會話的名稱。
我在用戶登錄時在會話中存儲用戶名和密碼。註銷後,當我按下瀏覽器的「返回」按鈕時,它會再次進入用戶的主頁。我希望會話必須過期,以便在用戶按下返回按鈕後註銷後,他會重新登錄到登錄頁面。註銷後會話不會過期
我已經嘗試
Session.RemoveAll();
Session.Abandon();
Session.Remove("StoreUser");
StoreUser是一個包含用戶名和密碼的會話的名稱。
使用FormsAuthentication.SignOut當您的註銷按鈕單擊事件時,請看下面的代碼
public void LogoutLink_OnClick(object sender, EventArgs args)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
,看到這個以前的有益討論:ASP.NET authentication login and logout with browser back button
我用FormsAuthentication.SignOut();
,並在我的web應用的其他地方,我有這個在我的WebForm當用戶登錄:
<asp:LoginStatus ID="LoginStatus1" LogoutImageUrl="~/Img/Logout.png"
BackColor="Transparent" runat="server" onloggingout="LoginStatus1_LoggingOut" />
,這在後面的代碼:
protected void LoginStatus1_LoggingOut(object sender, LoginCancelEventArgs e)
{
MembershipUser u = Membership.GetUser(HttpContext.Current.User.Identity.Name);
u.LastActivityDate = DateTime.Now.AddMinutes(-Membership.UserIsOnlineTimeWindow);
Membership.UpdateUser(u);
}
可以以下鏈接幫助你 - http://www.codeproject.com/Tips/135121/Browser-back-button-issue-after-logout
您的會話得到清除,但你的頁面的緩存獲得存儲在客戶端。你必須處理。
## IN Global.asax file you have to clear all the session in Session_end event ##
clear all the session in this event.
protected void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set to StateServer
// or SQLServer, the event is not raised.
}
你可以寫上的用戶主頁的頁面加載事件,並在該方法檢查,如果會議不存在值,比重定向到註銷 –
你在登錄時檢查會話值頁面的方法 – SANDEEP
你使用mvc或webforms,並且你使用了formauth嗎? –