1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ASP.NET Core MVC中如何使用Session實(shí)現(xiàn)身份驗(yàn)證

        共 1754字,需瀏覽 4分鐘

         ·

        2021-06-01 16:01

        一、什么是Session?

        Session即會(huì)話,是指一個(gè)用戶在一段時(shí)間內(nèi)對某一個(gè)站點(diǎn)的一次訪問。  Session對象在.NET中對應(yīng)HttpSessionState類,表示“會(huì)話狀態(tài)”,可以保存與當(dāng)前用戶會(huì)話相關(guān)的信息。Session對象用于存儲(chǔ)從一個(gè)用戶開始訪問某個(gè)特定的aspx的頁面起,到用戶離開為止,特定的用戶會(huì)話所需要的信息。用戶在應(yīng)用程序的頁面切換時(shí),Session對象的變量不會(huì)被清除。

        ASP.NET頁面是"無狀態(tài)"的,這意味著每次向服務(wù)器發(fā)送一個(gè)請求,服務(wù)器都會(huì)生成一個(gè)該頁面的實(shí)例。但有時(shí)候,我們希望在不同的頁面之間共享信息,比如購物車、用戶登錄等,于是,ASP.NET為我們提供了一個(gè)服務(wù)端的Session機(jī)制。

        對于一個(gè)Web應(yīng)用程序而言,所有用戶訪問到的Application對象的內(nèi)容是完全一樣的;而不同用戶會(huì)話訪問到的Session對象的內(nèi)容則各不相同。Session可以保存變量,該變量只能供一個(gè)用戶使用,也就是說,每一個(gè)網(wǎng)頁瀏覽者都有自己的Session對象變量,即Session對象具有唯一性。 

        二、 Session是如何工作的以及工作機(jī)制和工作流程

        服務(wù)端的Session機(jī)制是基于客戶端的,也就是說服務(wù)端的Session會(huì)保存每個(gè)客戶端的信息到服務(wù)端內(nèi)存中。

        具體過程是這樣的:
        →客戶端向服務(wù)端發(fā)出請求
        →服務(wù)端響應(yīng)客戶端,并針對該客戶端創(chuàng)建Session和唯一的Session ID
        →把Session ID作為key, Session內(nèi)容作為value,以鍵值對形式存儲(chǔ)到Session State Provider中
        →客戶端帶著專屬的Session ID再次向服務(wù)端請求
        →服務(wù)端的Session機(jī)制根據(jù)客戶端的Session ID,從Session State Provider中取出內(nèi)容返回給客戶端。

        三、ASP.NET Core MVC使用Session方式來實(shí)現(xiàn)用戶身份驗(yàn)證

        這篇文章主要為大家詳細(xì)介紹了ASP.NET Core MVC使用Session驗(yàn)證用戶登錄的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,用最簡單的Session方式記錄用戶登錄狀態(tài)。這里阿笨已經(jīng)把關(guān)鍵性代碼展示出來了,感興趣的可以學(xué)習(xí)一下。

        基于Session的身份驗(yàn)證實(shí)現(xiàn) 這種方式可能是在Asp.Net框架提供的幾種驗(yàn)證方式之外的最常用的身份驗(yàn)證方式。

        實(shí)現(xiàn)核心原理和具體實(shí)現(xiàn)步驟:

        1)、客戶端發(fā)送身份認(rèn)證數(shù)據(jù)到服務(wù)器端服務(wù)器收到并驗(yàn)證后將用戶信息保存到Session對象中,

        2)、然后生成對應(yīng)的標(biāo)識(shí)并將標(biāo)識(shí)寫入cookie中當(dāng)客戶端下次請求時(shí)帶上該cookie標(biāo)識(shí)服務(wù)器通過該cookie標(biāo)識(shí)從session對象中獲取對應(yīng)的用戶信息 。

        1)、 Asp.Net Core中Session中間件的使用

        我們需要在用戶登錄以后記錄當(dāng)前登錄用戶的會(huì)話狀態(tài),ASP.NET Core 已經(jīng)內(nèi)置發(fā)布了一個(gè)關(guān)于會(huì)話的程序包Microsoft.Extensions.DependencyInjection

        里面提供了用于管理會(huì)話狀態(tài)的中間件。


        修改Startup.cs文件的的ConfigureServices方法,增加Session服務(wù)注冊


        修改Startup.cs文件的的Configure方法,請求管道中啟用Session



        2)添加BaseAdminController控制器,重寫OnActionExecuting方法,每次訪問控制器前觸發(fā)。


        3)、登錄成功后實(shí)現(xiàn)對用戶信息存儲(chǔ)到Session中



        4)、需要驗(yàn)證的控制器繼承BaseAdminController

        比如首頁



        用戶管理頁面


        四、源代碼示例下載

        非常感謝對【跟著阿笨一起玩NET】的支持,有問題微信公眾號回復(fù)wx關(guān)鍵字,加阿笨的個(gè)人微信號。

        《ASP.NET Core MVC中如何使用Session實(shí)現(xiàn)身份驗(yàn)證》源碼下載回復(fù)關(guān) 鍵字提取碼:d6i3


        騰訊課堂



        網(wǎng)易云課堂


        瀏覽 29
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            色一情一乱一区二区三区 | 禁欲总裁被揉裆呻吟视频 | 国产外围女在线 | 人人操人人摸超碰 | 孕期play啊太快了h | 中文字幕日韩在线 | 欧美18一20男同69gay | 国产区在线观看视频 | 美穴AV | 中文字幕23页 |