ASP.NET Core中使用Session

Posted gygg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core中使用Session相关的知识,希望对你有一定的参考价值。

ASP.NET Core中使用Session

1、在程序包管理控制台中执行命令安装依赖包:

PM> Install-Package Microsoft.AspNetCore.Session -Version 2.2.0

也可直接在项目工程文件(*.csproj)中添加如下代码达到添加Session依赖的目的

1 <ItemGroup>
2     <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" />
3 </ItemGroup>

2、使用依赖关系注入从应用中引用的服务

在Startup类的ConfigureServices()方法中调用AddSession()服务:

1 public void ConfigureServices(IServiceCollection services)
2 
3     services.AddSession();
4 

3、使用中间件

在Startup类的Configure()方法中添加UseSession()中间件:

1 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
2 
3      app.UseSession();
4 

4、修改配置,防止页面切换后Session失效

防止页面切换后Session ID改变,Seesion失效

1 public void ConfigureServices(IServiceCollection services)
2 
3   services.Configure<CookiePolicyOptions>(options =>
4      
5          // This lambda determines whether user consent for non-essential cookies is needed for a given request.
6          options.CheckConsentNeeded = context => false;//默认为true,改为false
7          options.MinimumSameSitePolicy = SameSiteMode.None;
8       );
9 

5、使用Session

Session写入

1 HttpContext.Session.SetString("key", "value");

Session读取

1 HttpContext.Session.GetString("key");

 扩展方法

 1 /// <summary>
 2 /// Session写入
 3 /// </summary>
 4 /// <param name="key"></param>
 5 /// <param name="value"></param>
 6 protected void SetSession(string key, string value)
 7 
 8     HttpContext.Session.SetString(key, value);
 9 
10 
11 /// <summary>
12 /// Session读取
13 /// </summary>
14 /// <param name="key"></param>
15 /// <returns>返回对应的值</returns>
16 protected string GetSession(string key)
17 
18     var value = HttpContext.Session.GetString(key);
19     if (string.IsNullOrEmpty(value))
20     value = string.Empty;
21     return value;
22 

 

以上是关于ASP.NET Core中使用Session的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程

在 ASP.NET Core 6.0 中使用 Serilog

ASP.NET Core 1.0 中使用 Swagger 生成文档

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

ASP.NET Core 1.0 中使用Log日志