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 }

原文地址:https://www.cnblogs.com/gygg/p/11290082.html

时间: 2024-08-01 14:35:37

ASP.NET Core中使用Session的相关文章

解析Asp.net Core中使用Session的方法

2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Core中引用dll,以往我们引用DLL都是直接引用,在Core里这样是不行的,必须基于NuGet添加,或者基于project.json添加,然后保存VS会启动还原类库. 第二就是使用Session的问题,Core里使用Session需要添加Session类库. 添加Session 在你的项目上基于NuGet添

ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作

前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分布式协调框架.它的作用体现在分布式系统中解决了配置中心的问题,以及解决了在分布式环境中不同进程之间争夺资源的问题,也就是分布式锁的功能以及分布式消息队列功能等等.所以在微服务的环境中Zookeeper是现在很多公司首选的分布式协调框架,包括我之前的公司也在使用Zookeeper.说了这么多,没别的就

Asp.net core中的websocket

Websocket是html5后的产物,对于asp.net core中也得到了支持,首先在NuGet中添加Microsoft.AspNetCore.WebSockets的引用(现在是1.0.1版本,2017年3月7日发布的). 首先在Configure中添加中间件 //添加websocket中间件 app.UseWebSockets(); 接下来就要定义自己处理websocket的中间件了,代码如下: using Microsoft.AspNetCore.Http; using System;

ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【解读ServiceCallSite 】

通过上一篇的介绍我们应该对实现在ServiceProvider的总体设计有了一个大致的了解,但是我们刻意回避一个重要的话题,即服务实例最终究竟是采用何种方式提供出来的.ServiceProvider最终采用何种方式提供我们所需的服务实例取决于最终选择了怎样的ServiceCallSite,而服务注册是采用的ServiceDescriptor有决定了ServiceCallSite类型的选择.我们将众多不同类型的ServiceCallSite大体分成两组,一组用来创建最终的服务实例,另一类则与生命周

如何在ASP.NET Core中应用Entity Framework

注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity Framework 首先为大家提醒一点,.NET Core和经典.NET Framework的Library是不通用的,包括Entity Framework! 哪怎么办? 别急,微软为.NET Core发布了.NET Core版本的Entity Framework,具体配置方法与经典.NET Framew

如何在ASP.NET Core中实现一个基础的身份认证

注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比

ASP.NET Core中使用xUnit进行单元测试

单元测试的功能自从MVC的第一个版本诞生的时候,就是作为一个重要的卖点来介绍的,通常在拿MVC与webform比较的时候,单元测试就是必杀底牌,把webform碾压得一无是处. 单元测试的重要性不用多说了,有单元测试的做兜底的项目,好比给开发人员买了份保险,当然这个保险的质量取决于单元测试的质量,那些一路Mock的单元测试,看起来很美,但是什么都cover不到.目前工作中的一个老项目,有2万多个单元测试用例,其中不少是用心之作,真正落实到了业务逻辑,开发人员可以放心的去修改代码,当然一切都必须按

ASP.NET Core中的依赖注入(2):依赖注入(DI)

参考页面: http://www.yuanjiaocheng.net/ASPNET-CORE/project-layout.html http://www.yuanjiaocheng.net/ASPNET-CORE/projectjson.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-configuration.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-middleware.htm

NLog在asp.net core中的应用

Asp.net core中,自带的Log是在当selfhost运行时,在控制台中输出,不便于查阅,如果用一个log架框,把日志持久化,便于查询. NLog是一个免费的日志记录框架,专门为.net平台下的框架提供日志功能,本文主要说明asp.net core下怎么使用NLog. 首先用Nuget安装NLog.Extensions.Logging和NLog.Web.AspNetCore两个类库. 修改project.json,在publishOptions中添加"nlog.config节点"