如何在 C# ASP.NET Core 中启用会话?

如何在 C# ASP.NET Core 中启用会话?

Session是ASP.NET Core中的一个功能,它使我们能够保存/存储用户数据。

Session将数据存储在服务器上的字典中,使用SessionId作为键。

SessionId 存储在客户端的 cookie 中。 SessionId cookie 是通过以下方式发送的 每个请求。

SessionId cookie是针对每个浏览器的,不能在不同的浏览器之间共享。

SessionId cookie没有指定超时时间,当浏览器关闭时会被删除 浏览器会话结束。

在服务器端,会话会保留有限的时间。默认会话超时时间为 服务器是20分钟,但是可以进行配置。

Microsoft.AspNetCore.Session包提供了在ASP.NET Core中管理会话的中间件。要在我们的应用程序中使用会话,我们需要将此包添加为项目的依赖项在project.json文件中。

下一步是在Startup类中配置会话。

我们需要在startup类的ConfigureServices方法中调用“AddSession”方法。

“AddSession”方法有一个重载方法,可以接受各种会话参数

选项,如空闲超时、Cookie名称和Cookie域等。

如果我们不传递会话选项,系统将采用默认选项。

示例

public class Startup {
   public void Configure(IApplicationBuilder app){
      app.UseSession();
      app.UseMvc();
      app.Run(context => {
         return context.Response.WriteAsync("Hello World!");
      });
   }
   public void ConfigureServices(IServiceCollection services){
      services.AddMvc();
      services.AddSession(options => {
         options.IdleTimeout = TimeSpan.FromMinutes(60);
      });
   }
}

如何访问会话

public class HomeController : Controller{
   [Route("home/index")]
   public IActionResult Index(){
      HttpContext.Session.SetString("product","laptop");
      return View();
   }
   [Route("home/GetSessionData")]
   public IActionResult GetSessionData(){
      ViewBag.data = HttpContext.Session.GetString("product");;
      return View();
   }
}

以上就是如何在 C# ASP.NET Core 中启用会话?的详细内容,更多请关注编程之家其它相关文章!

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...