首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET 實現用戶登出功能:清空 Session 與棄用會話

     編輯:ASP.NET 基礎

核心原理

登出的本質是終結用戶的會話狀態。在 ASP.NET Web Forms 中,通過清空 Session 集合並調用 Abandon() 方法,即可徹底銷毀當前會話,隨後重定向至登入頁面完成閉環。

實現步驟

1. 前端頁面

在 index.aspx 放置登出鏈接,指向處理程序:

<a href="logoutHandler.ashx">登出</a>

2. 一般處理程序

建立 LogoutHandler.ashx,實現 IHttpHandler 與 IRequiresSessionState 接口(後者為讀寫 Session 的關鍵):

public class LogoutHandler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
        context.Session.Clear();      // 移除所有鍵值
        context.Session.Abandon();    // 取消當前會話
        context.Response.Redirect("/account/login.aspx"); // 跳轉登入頁
    }

    public bool IsReusable => false;
}

3. 完成驗證

點擊登出鏈接後,Session 即被銷毀,用戶無法再訪問受保護資源,達到安全登出目的。

注意事項

  • 必須實現 IRequiresSessionState,否則 context.Session 為 null。
  • 若使用 StateServer 或 SQLServer 模式,Session_End 事件不會觸發,但 Clear() 與 Abandon() 依然有效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved