<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1754字,需瀏覽 4分鐘

           ·

          2021-06-01 16:01

          一、什么是Session?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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



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


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



          4)、需要驗證的控制器繼承BaseAdminController

          比如首頁



          用戶管理頁面


          四、源代碼示例下載

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

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


          騰訊課堂



          網(wǎng)易云課堂


          瀏覽 29
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  依人大香蕉在线视频 | 亚洲A∨剧情中文 | 蜜桃91视频 | 免费观看黄色小视频 | 欧美国产手机在线 |