tnblog
首页
视频
资源
登录

.net core 使用依赖注入session

6544人阅读 2019/12/18 19:17 总访问:400105 评论:0 收藏:0 手机
分类: .NET Core

tip:net core 2.2版本后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了的

使用工具nuget包管理器 添加引用 Microsoft.AspNetCore.Session 

在nuget中执行命令 :Install-Package Microsoft.AspNetCore.Session


tip:假如这里不能注入成功的话,我们要后面跟上和项目一致的版本,在这里我的项目版本为2.1的,代码如下:

  

  1.  在nuget中执行命令 :Install - Package Microsoft.AspNetCore.Session - Version 2.1.1
  2.        
  3.                 install - package Microsoft.AspNetCore.http - version  2.1.1


更新 Startup.cs 使用需要的服务

注释:当添加完Microsoft.AspNetCore.Session依赖后很有可能在写 app.UseSession()  

        就是所谓的启动session 中间件

  

  1.        app.UseStaticFiles();
  2.             app.UseCookiePolicy();
  3.       //启动session 中间件
  4.       app.UseSession();

 

  前面还需要服务添加session  ,如图:

    

接下来就是session的存取操作了。

我们可以做一个简单·的登录,然后用session保存值。

  login视图 :代码如下:

  

  1. <form method="post" action="/Acount/SignIn">
  2.     用户名:<input type="text" name="userName" /><br />
  3.     密  码:<input type="password" name="password" />  
  4.     <input type="submit" value="登录" />
  5. </form>

控制器代码如下:

  

  1.  public IActionResult Login()
  2.         {
  3.             return View();
  4.         }
  5.   public IActionResult SignIn( string  UserName)
  6.         {
  7.             string UserName2 = Request.Form["UserName"];
  8.             if (!string.IsNullOrWhiteSpace(UserName2))
  9.             {
  10.                   //存值
  11.                 HttpContext.Session.SetString("UserName", UserName);
  12.                 return RedirectToAction("index""center");
  13.             }
  14.             return View();
  15.         }

  存操作:在该控制器下存上用户名UserName,页面跳转到Center控制器读取数据值。

  

  取session值 代码如下:

 

  1.  public IActionResult Index()
  2.         {
  3.              //取值
  4.             string username = HttpContext.Session.GetString("UserName");
  5.             if (string.IsNullOrWhiteSpace(username))
  6.             {
  7.                 return RedirectToAction("login""Account");
  8.             }
  9.             ViewBag.UserName = username;
  10.             return View();
  11.         }

    

   现在我们可以把项目跑起来,然后访问登录页面。会发现这里有个小坑。存的时候可以拿到值,但是取的时候值就为空。运行时如下图:

  



  错误的意思大概就是cookie被禁用了,但是如果浏览器的cookie被禁用的话,项目应该跑不起才对啊。

  后来才知道,在net core 中存在 GDPR规则问题


 

GDPR:《通用数据保护条例》(General Data Protection Regulation,简称GDPR)为欧洲联盟的条例

           2018年5月25日,欧洲联盟出台《通用数据保护条例》

 

 总之这玩意就是为了保护用户隐私数据的,如果企业滥用数据将会罚金。

            对违反规定的公司处罚高达其全球收入的 4%的罚金。如果亚马逊受到惩罚,罚款将为 70 亿美元

             当然适用性现在只适用于欧盟。


net core中,默认是开启了GDPR导致了cookie和session不能使用,如果要使用的话,最简单的就是在Startup.cs 中直接关闭


 

 我这里直接把那一段注释了就好啦,然后登录就可以拿到session存的值啦。


 好啦,今天内容就到这里了,现在大家对net core 里的session 应该重新有一个定义了吧。

评价

尘叶心繁

2025/1/10 15:50:49

[good]

net core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

.net mvc分部页,.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

StackExchange.Redis操作redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

通俗易懂,什么是.net?什么是.net Framework?什么是.net core?

朋友圈@蓝羽 看到一篇文章写的太详细太通俗了,搬过来细细看完,保证你对.NET有个新的认识理解原文地址:https://www.cnblo...

asp.net core2.0 依赖注入 AddTransient与AddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...

.net core 使用 Kestrel

Kestrel介绍 Kestrel是一个基于libuv的跨平台web服务器 在.net core项目中就可以不一定要发布在iis下面了Kestrel体验可以使...

net core中使用cookie

net core中可以使用传统的cookie也可以使用加密的cookieNET CORE中使用传统cookie设置:HttpContext.Response.Cookies.Appe...

net core项目结构简单分析

一:wwwrootwwwroot用于存放网站的静态资源,例如css,js,图片与相关的前端插件等lib主要是第三方的插件,例如微软默认引用...

net core使用EF之DB First

一.新建一个.net core的MVC项目新建好项目后,不能像以前一样直接在新建项中添加ef了,需要用命令在添加ef的依赖二.使用Nug...

.net core使用requestresponse下载文件下载excel等

使用request获取内容net core中request没有直接的索引方法,需要点里边的Query,或者formstringbase64=Request.Form[&quot;f...

iframe自适应高度与配合net core使用

去掉iframe边框frameborder=&quot;0&quot;去掉滚动条scrolling=&quot;no&quot;iframe 自适应高度如果内容是固定的,那么就...

net core启动报错Unable to configure HTTPS endpoint. No server certificate was specified

这是因为net core2.1默认使用的https,如果使用Kestrel web服务器的话没有安装证书就会报这个错其实仔细看他的错误提示,其...

net core中使用url编码与解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...

下载net core

官方下载地址:https://dotnet.microsoft.com/download 进来之后就可以看到最新的下载版本可以直接点击下载,也可以下载其...

net core使用依赖注入来装载EF的上下文对象

妹子情人节快乐~.net core中用了不少的依赖注入,官方文档中也推荐使用。这样使用依赖注入来管理ef对象,还是比较科学,比如...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
158
文章
3
粉丝
0
评论
1
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术