当前位置:首页 > Web开发 > 正文

意味者你的session可以进行持久化管理

2024-03-31 Web开发

接着上文.Net Core 认证系统源码解析,Cookie认证算是常用的认证模式,但是目前主流都是前后端疏散,有点鸡肋但是,不考虑移动真个站点或者纯打点后台网站可以使用这种认证方法.注意:基于浏览器且不是前后端疏散的架构(页面端具有处事端措置惩罚惩罚能力).移动端就不要考虑了,太麻烦.撑持前后端疏散前给移动端供给认证Api的一般给与JwtBearer认证,可以和IdentityServer4的password模式结合.很适用,但是id4的password模式各客户端必需绝对信任,因为要袒露用户名暗码.适合做企业级下所有产品的认证.不撑持除企业外的第三方挪用.固然id4供给了其他模式.这是题外话.但是场景得介绍清楚.以免误导大家!

1、Cookie认证流程

技术图片

引入核心认证组件之后,通过扩展的方法引入Cookie认证,微软给与链式编程,很优雅.Net Core的一大特点.

技术图片

注入Cookie认证方案,指定Cookie认证参数,并指定Cookie认证措置惩罚惩罚器,先不介绍参数,看看措置惩罚惩罚器干了什么.

技术图片

Cookie的核心认证要领,第一步如下:

技术图片

技术图片

一些必需的防反复执行操纵,没截图,也不介绍了,安适事情,只贴核心代码.第一步,就是去读取客户端存在的cookie信息.

技术图片

微软在Cookie认证参数中供给了接口,意味者你可以自界说读取Cookie内容的实现,他会把上下文和Cookie的名称传给你,这样就能定制获取Cookie内容的实现.接着解密Cookie内容

技术图片

微软注入了Core的核心加密组件,大家自行百度,key也可以通过Cookie认证参数配置,如果你不指定,却给与微软默认的实现.所以客户真个cookie内容一般都以加密内容显示.

接着

技术图片

拿到seesionId的cliam,关于claim不久不多说,自行百度.core新的身份模型.必需了解的内容.

cookie认证参数中你可以配置SessionStore,意味者你的session可以进行长期化打点,数据库还是redis还是漫衍式环境自行选择.应用场景是cookie过长,客户端无法存储,那么就可以通过配置这个SessionStore来实现.即漫衍式会话.微软也供给了扩展.

接着,cookie过期检测.

技术图片

接着

技术图片

上面的代码意味着cookie可以自动刷新.通过以下两个参数

技术图片

如果读取到的客户真个cookie撑持过期刷新,那么从头写入到客户端.

ok,如果没有在客户端读取到cookie内容,意味者cookie被断根,或者用户是第一次登陆,直接返回认证掉败,如果告成,执行认证cookie校验认证上下文的要领

Events可以在AuthenticationSchemeOptions参数中配置

技术图片

但是Cookie认证参数供给了默认实现

技术图片

技术图片

意味者你可以在注入Cookie认证处事的时候,自界说验证cookie功效的验证实现.

通过CookieAuthenticationOptions的Events属性进行注入.验证完毕,

技术图片

判断上下文中的ShouldRenew参数,这个你可以按照业务需要执行刷新cookie的实现,最后返回认证功效.

整个流程到这里结束.

2、应用

因为登陆页面不能进行认证,所以必需加一其中间件放行登陆页面,代码如下:

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/33110.html