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当中应用)