温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET Core中怎么使用Session实现身份验证

发布时间:2021-07-15 14:34:51 来源:亿速云 阅读:349 作者:Leah 栏目:编程语言

本篇文章为大家展示了ASP.NET Core中怎么使用Session实现身份验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、什么是Session?

Session即会话,是指一个用户在一段时间内对某一个站点的一次访问。  Session对象在.NET中对应HttpSessionState类,表示“会话状态”,可以保存与当前用户会话相关的信息。Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息。用户在应用程序的页面切换时,Session对象的变量不会被清除。

ASP.NET页面是"无状态"的,这意味着每次向服务器发送一个请求,服务器都会生成一个该页面的实例。但有时候,我们希望在不同的页面之间共享信息,比如购物车、用户登录等,于是,ASP.NET为我们提供了一个服务端的Session机制。

对于一个Web应用程序而言,所有用户访问到的Application对象的内容是完全一样的;而不同用户会话访问到的Session对象的内容则各不相同。Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一性。 

二、 Session是如何工作的以及工作机制和工作流程

服务端的Session机制是基于客户端的,也就是说服务端的Session会保存每个客户端的信息到服务端内存中。

具体过程是这样的:
→客户端向服务端发出请求
→服务端响应客户端,并针对该客户端创建Session和唯一的Session ID
→把Session ID作为key, Session内容作为value,以键值对形式存储到Session State Provider中
→客户端带着专属的Session ID再次向服务端请求
→服务端的Session机制根据客户端的Session ID,从Session State Provider中取出内容返回给客户端。

三、ASP.NET Core MVC使用Session方式来实现用户身份验证

这篇文章主要为大家详细介绍了ASP.NET Core MVC使用Session验证用户登录的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,用最简单的Session方式记录用户登录状态。这里阿笨已经把关键性代码展示出来了,感兴趣的可以学习一下。

基于Session的身份验证实现 这种方式可能是在Asp.Net框架提供的几种验证方式之外的最常用的身份验证方式。

实现核心原理和具体实现步骤:

1)、客户端发送身份认证数据到服务器端服务器收到并验证后将用户信息保存到Session对象中,

2)、然后生成对应的标识并将标识写入cookie中当客户端下次请求时带上该cookie标识服务器通过该cookie标识从session对象中获取对应的用户信息 。

1)、 Asp.Net Core中Session中间件的使用

我们需要在用户登录以后记录当前登录用户的会话状态,ASP.NET Core 已经内置发布了一个关于会话的程序包Microsoft.Extensions.DependencyInjection

里面提供了用于管理会话状态的中间件。

修改Startup.cs文件的的ConfigureServices方法,增加Session服务注册

ASP.NET Core中怎么使用Session实现身份验证

修改Startup.cs文件的的Configure方法,请求管道中启用Session

ASP.NET Core中怎么使用Session实现身份验证

2)、添加BaseAdminController控制器,重写OnActionExecuting方法,每次访问控制器前触发。

ASP.NET Core中怎么使用Session实现身份验证

3)、登录成功后实现对用户信息存储到Session中

ASP.NET Core中怎么使用Session实现身份验证

4)、需要验证的控制器继承BaseAdminController

比如首页

ASP.NET Core中怎么使用Session实现身份验证

用户管理页面

ASP.NET Core中怎么使用Session实现身份验证

上述内容就是ASP.NET Core中怎么使用Session实现身份验证,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI