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

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

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

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

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

安裝 Session 中間件

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

Install-Package Microsoft.AspNetCore.Session

配置 session 中間件

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

  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 來啟動(dòng) session。

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

存儲(chǔ)和獲取 session

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

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

下面的代碼展示了如何將數(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 接口上新增一個(gè)擴(kuò)展方法并且自己來實(shí)現(xiàn)序列化邏輯,從 session 中設(shè)置或者獲取 復(fù)雜類型時(shí),可以把這個(gè)類型序列化為 json,或者 json 反序列化為 model。

還有一點(diǎn)要特別注意,默認(rèn)的 session 是基于內(nèi)存的,也就是說進(jìn)程關(guān)閉了 session 就會(huì)丟失,如果你想實(shí)現(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • .NET Core 2.0如何生成圖片驗(yàn)證碼完整實(shí)例

    .NET Core 2.0如何生成圖片驗(yàn)證碼完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于.NET Core 2.0如何生成圖片驗(yàn)證碼的相關(guān)資料,該功能主要是利用ZKWeb.System.Drawing來實(shí)現(xiàn),文中給出了詳細(xì)的示例代碼供大家參考學(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ù) 表頭不顯示的問題,那是因?yàn)?綁定了null,你給list new一下就好 表頭就會(huì)有啦
    2013-05-05
  • .NET Core 3.0中WPF使用IOC的圖文教程

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

    這篇文章主要給大家介紹了關(guān)于在.NET Core 3.0中WPF使用IOC的圖文教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(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部署方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Asp.net Core中實(shí)現(xiàn)自定義身份認(rèn)證的示例代碼

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

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

    在運(yùn)行時(shí)編輯代碼的 .NET 熱重載的操作方法

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

    .NET Core自定義配置文件

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

最新評(píng)論