欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在ASP.NET Core中使用Session的示例代碼

 更新時間:2021年01月22日 09:34:34   作者:一線碼農(nóng)  
這篇文章主要介紹了如何在ASP.NET Core中使用Session的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

ASP.NET Core 是一個跨平臺,開源的,輕量級,高性能 并且 高度模塊化的web框架,Session 可以實現(xiàn)用戶信息存儲從而可以在同一個客戶端的多次請求之間實現(xiàn)用戶追蹤,在 ASP.Net Core 中可以使用 Microsoft.AspNetCore.Session 中間件來啟用 Session 機制。

中間件的價值在于可以在 request -> response 的過程中做一些定制化的操作,比如說:監(jiān)視數(shù)據(jù),切換路由,修改流轉(zhuǎn)過程中的消息體,通常來說:中間件是以鏈式的方式灌入到 ASP.Net Core 的 pipeline 管道中,這篇文章主要討論如何使用 Session 中間件。

安裝 Session 中間件

要想使用 session 中間件,你可以使用 Visual Studio 2019 中的 NuGet package manager 可視化界面進行安裝,或者通過 NuGet package manager console 命令行輸入如下命令:

Install-Package Microsoft.AspNetCore.Session

配置 session 中間件

現(xiàn)在 Microsoft.AspNetCore.Session 已經(jīng)成功安裝到你的項目中了,接下來可以將它添加到 ASP.Net Core pipeline 中,請注意:為了能夠啟動 Session,你必須要使用一個 實現(xiàn)了 IDistributedCache 接口的 cache store 來作為 session 的底層存儲,然后你還要在 ConfigureServices 方法下調(diào)用 AddSession 方法將其塞入 IOC 容器,最后在 Startup.Configure 方法下使用 UseSession 將其塞入到 request -> response 請求管道中,具體代碼如下:

  public void ConfigureServices(IServiceCollection services)
  {
    services.AddDistributedMemoryCache();
    services.AddSession(options =>
    {
      options.IdleTimeout = TimeSpan.FromSeconds(5);
      options.Cookie.HttpOnly = true;
      options.Cookie.IsEssential = true;
    });
    services.AddMvc()
      .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
  }

一旦 session 中間件加入到了 IOC 容器之后,接下來可以在 Configure 方法中調(diào)用 UseSession 來啟動 session。

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseSession();
    app.UseHttpContextItemsMiddleware();
    app.UseMvc();
  }

存儲和獲取 session

你可以使用 Set, SetInt32 和 SetString 這三個方法來實現(xiàn) Session 的存儲,這些方法有兩個參數(shù),一個是鍵,一個是鍵對應(yīng)的數(shù)據(jù),而且 Set 方法的 value 對應(yīng)的是 byte[] 形式。

類似的,你可以使用 Get,GetInt32 和 GetString 方法來實現(xiàn) session 的讀取,同時 Get 方法接收一個 string 格式的 key,并且返回 byte[] 數(shù)組,要使用這些擴展方法,你需要將 Microsoft.AspNetCore.Http 引用到項目中。

下面的代碼展示了如何將數(shù)據(jù)添加到 session 中。

public IActionResult Index()
{
  HttpContext.Session.SetString("Message", "Hello World!");
  HttpContext.Session.SetInt32("Year", 2019);
  return View();
}

接下來再看看如何從 session 中獲取數(shù)據(jù),如下代碼所示:

public IActionResult About()
{
  ViewBag.Message = HttpContext.Session.GetString("Message");
  ViewBag.Year = HttpContext.Session.GetInt32("Year");
  return View();
}

如果你想設(shè)置或者獲取屬于其他類型的數(shù)據(jù),可以在 ISession 接口上新增一個擴展方法并且自己來實現(xiàn)序列化邏輯,從 session 中設(shè)置或者獲取 復(fù)雜類型時,可以把這個類型序列化為 json,或者 json 反序列化為 model。

還有一點要特別注意,默認的 session 是基于內(nèi)存的,也就是說進程關(guān)閉了 session 就會丟失,如果你想實現(xiàn)session持久化,可以采用 sqlserver 或者 redis。

譯文鏈接:https://www.infoworld.com/article/3411563/how-to-work-with-session-state-in-aspnet-core.html

到此這篇關(guān)于如何在ASP.NET Core中使用Session的示例代碼的文章就介紹到這了,更多相關(guān)ASP.NET Core使用Session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • .NET Core 2.0如何生成圖片驗證碼完整實例

    .NET Core 2.0如何生成圖片驗證碼完整實例

    這篇文章主要給大家介紹了關(guān)于.NET Core 2.0如何生成圖片驗證碼的相關(guān)資料,該功能主要是利用ZKWeb.System.Drawing來實現(xiàn),文中給出了詳細的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 詳解ASP.NET頁面生命周期

    詳解ASP.NET頁面生命周期

    這篇文章主要為大家介紹了ASP.NET頁面生命周期,熟悉頁面生命周期非常重要,這樣我們才能在生命周期的合適階段編寫代碼,需要的朋友可以參考下
    2015-12-12
  • datagrid綁定list沒有數(shù)據(jù) 表頭不顯示的解決方法

    datagrid綁定list沒有數(shù)據(jù) 表頭不顯示的解決方法

    datagrid綁定list沒有數(shù)據(jù) 表頭不顯示的問題,那是因為 綁定了null,你給list new一下就好 表頭就會有啦
    2013-05-05
  • .NET Core 3.0中WPF使用IOC的圖文教程

    .NET Core 3.0中WPF使用IOC的圖文教程

    這篇文章主要給大家介紹了關(guān)于在.NET Core 3.0中WPF使用IOC的圖文教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Asp.Net 數(shù)據(jù)操作類(附通用數(shù)據(jù)基類)

    Asp.Net 數(shù)據(jù)操作類(附通用數(shù)據(jù)基類)

    數(shù)據(jù)操作類代碼,方便在asp.net操作數(shù)據(jù)庫
    2008-11-11
  • ASP.NET用戶控件技術(shù)

    ASP.NET用戶控件技術(shù)

    ASP.NET用戶控件技術(shù)...
    2007-04-04
  • 剖析Asp.Net Web API路由系統(tǒng)---WebHost部署方式

    剖析Asp.Net Web API路由系統(tǒng)---WebHost部署方式

    這篇文章主要介紹了剖析Asp.Net Web API路由系統(tǒng)---WebHost部署方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Asp.net Core中實現(xiàn)自定義身份認證的示例代碼

    Asp.net Core中實現(xiàn)自定義身份認證的示例代碼

    這篇文章主要介紹了Asp.net Core中實現(xiàn)自定義身份認證的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 在運行時編輯代碼的 .NET 熱重載的操作方法

    在運行時編輯代碼的 .NET 熱重載的操作方法

    今天通過本文給大家分享 Visual Studio 2019 中 16.11(預(yù)覽版1)中的 .NET 熱重載(通過 .NET 6(預(yù)覽版4)中的 dotnet watch 命令行工具),介紹什么是 .NET 熱重載,如何使用這個特征,感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-07-07
  • .NET Core自定義配置文件

    .NET Core自定義配置文件

    這篇文章介紹了.NET Core自定義配置文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論