学习ASP.NET Core的身份认证(基于Cookie的身份认证2)

  采用基于Cookie的身份认证,在调用services.AddAuthentication注册服务时,可以通过CookieAuthenticationOptions对象按需设置Cookie属性,常用的包括以下属性(更详细的介绍见参考文献2,微软的帮助文档中的介绍看的头大):

序号属性说明
1Cookie保存Cookie设置,主要属性包括Name(Cookie名称)、Path(Cookie 路径)、 Expiration(Cookie 的生命周期,也即过期时间)、MaxAge(Cookie 的最大期限,Cookie使用Expiration或MaxAge都可以用来限制Cookie的生效时间,如果同时使用,则以MaxAge为准)、HttpOnly(客户端脚本是否无法访问 Cookie,默认为false)、IsEssential(指示此 Cookie 是否对应用程序正常运行至关重要。 如果为 true,则可能会绕过同意策略检查。)
2LoginPath设置登录页路径,当访问未授权路径时默认跳转到LoginPath路径
3LogoutPath设置登出路径
4AccessDeniedPath访问被拒绝时的默认跳转路径
5ExpireTimeSpan为存储在 Cookie 中的身份验证票证的有效时间段,其与CookieOptions的 Expires属性(过期时间)是分开的,后者指定浏览器将保留 Cookie 的时间
6SlidingExpiration是否顺延过期时间,值为true时,服务端处理请求时如果ExpireTimeSpan已超过一半,则重新签发新的Cookie及过期时间,更详细的说明见参考文献3

  在服务端登录函数中通过用户验证后,调用HttpContext.SignInAsync函数将将用户的身份信息保存在认证Cookie中,以便后续的请求可以验证用户的身份(参考文献4)。该函数可以传入AuthenticationProperties对象设置与身份验证会话相关的属性,常用属性如下(更详细的介绍见参考文献5):

序号属性说明
1IssuedUtc获取或设置身份验证票证的颁发时间
2ExpiresUtc获取或设置身份验证票证的过期时间
3IsPersistent获取或设置在多次请求后是否还保留身份验证会话
4AllowRefresh获取或设置是否应允许刷新身份验证会话

参考文献:
[1]https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.aspnetcore.http.cookiebuilder?view=aspnetcore-9.0
[2]https://biyusr.blog.csdn.net/article/details/125925446
[3]https://q.cnblogs.com/q/1054
[4]https://cloud.tencent.com/developer/information/HttpContext.SignInAsync()%E7%99%BB%E5%BD%95%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F
[5]https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.aspnetcore.authentication.authenticationproperties?view=aspnetcore-9.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之 模板方法模式

模板方法模式是行为型设计模式的一种。它定义了一个算法的骨架,并将某些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。 模板方法模式的核心在于: 封装算法的骨架:通过父类中的模板方…

Softing线上研讨会 | Ethernet-APL:推动数字时代的过程自动化

| (免费)线上研讨会时间:2024年11月19日 16:00~16:30 / 23:00~23:30 Ethernet-APL以10Mb/s的传输速率为过程工业中的现场设备带来了无缝以太网连接和本质安全电源,这不仅革新了新建工厂,也适用于改造现有工厂。 与现…

Idea修改Commit Changes模式、idea使用git缺少部分Commit Changes

文章目录 一、模式一1、页面效果如下2、如何打开为这种样式? 二、模式二1、页面效果如下2、如何打开为这种样式? 三、总结 前言:Idea中代码提交到git库时的commit Change有两种模式,每种模式的界面及功能都不太一样。 Commit Cha…

Getx:GetxController依赖管理02,Binding绑定全局控制器(懒加载Controller)

在使用GetX 状态管理器的时候,如果每个页面都手动实例化一个控制器就太麻烦了, Binding 的作用就是所有需要进行状态管理的控制器进行统一初始化 创建全局控制器Binding import package:get/get.dart; import ../controllers/counter.dart; // 同上一篇内…

东土科技孵化的“网联汽车高速通信技术”前沿产品亮相2024WICV大会

2024世界智能网联汽车大会(WICV)于近日在北京召开。本次大会发布了由中国汽车工程学会组织全球200余位专家,联合评审遴选出未来十年对于智能网联汽车发展具有重要影响的十大技术趋势,包括“面向高级别自动驾驶的超级人工智能”“网…

torch.__version__的torch版本和conda list的torch版本不一致

conda list是1.9.0的torch,但是torch.__version__是1.6的,很奇怪 后来发现这个1.6的torch是base的版本 但是使用“python -m site”查看当前环境的包搜索路径,也是对的,先从我自己的虚拟环境搜索 最后从我自己的虚拟环境里pip uni…

nginx 配置lua执行shell脚本

1.需要nginx安装lua_nginx_module模块,这一步安装时,遇到一个坑,nginx执行configure时,一直提示./configure: error: unsupported LuaJIT version; ngx_http_lua_module requires LuaJIT 2.x。 网上一堆方法都试了,都…

【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)

文章目录 具体方法GPT分区表(GUID Partition Table)(建议都用这种分区方法)MBR分区表方法(最大支持2TB分区)(Master Boot Record) 附加:如何查看硬盘的型号另外&#xff…

使用itextpdf进行pdf模版填充中文文本时部分字不显示问题

在网上找了很多种办法 都解决不了; 最后发现是文本域字体设置出了问题; 在这不展示其他的代码 只展示重要代码; 1 引入扩展包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</v…

【Ubuntu】如何在Ubuntu系统中查看端口是否可用

文章目录 前言一、使用netstat命令二、使用ss命令三、使用lsof命令四、使用nc&#xff08;netcat&#xff09;命令总结 前言 本文介绍了如何在Ubuntu系统中查看端口是否可用的方法&#xff0c;并给出了具体的命令示例&#xff0c;帮助用户通过命令行工具检测端口的开放状态。 …

长短时记忆网络(SLTM):理解与实践

长短时记忆网络&#xff08;SLTM&#xff09;&#xff0c;即短期长期记忆网络&#xff0c;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;它能够学习到数据中的长期依赖关系。在这篇文章中&#xff0c;我们将详细介绍SLTM的工作原理&#xff0c;并提供一个简…

HTML5实现剪刀石头布小游戏(附源码)

文章目录 1.设计来源1.1 主界面1.2 皮肤风格1.2 游戏中界面 2.效果和源码源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/143798520 HTM…

自动驾驶之激光雷达

这里写目录标题 1 什么是激光雷达2 激光雷达的关键参数3 激光雷达种类4 自动驾驶感知传感器5 激光雷达感知框架5.1 pointcloud_preprocess5.2 pointcloud_map_based_roi5.3 pointcloud_ground_detection5.4 lidar_detection5.5 lidar_detection_filter5.6 lidar_tracking 1 什么…

pycharm在使用conda虚拟环境时Terminal爆红问题

问题&#xff1a; 解决方法&#xff1a; 复制cmd.exe后面所有路径 添加到pycharm的shell path中&#xff1a;

《Python浪漫的烟花表白特效》

一、背景介绍 烟花象征着浪漫与激情&#xff0c;将它与表白结合在一起&#xff0c;会创造出别具一格的惊喜效果。使用Python的turtle模块&#xff0c;我们可以轻松绘制出动态的烟花特效&#xff0c;再配合文字表白&#xff0c;打造一段专属的浪漫体验。 接下来&#xff0c;让…

JavaScript数据类型判断之Object.prototype.toString.call() 的详解

Object.prototype.toString.call() 的详解 Object.prototype.toString.call() 是 JavaScript 中判断数据类型的强大方法。它可以精确区分所有的 JavaScript 内置类型&#xff0c;包括原始类型和对象类型。 语法 Object.prototype.toString.call(value)value 是要检测类型的变…

二次封装的天气时间日历选择组件

这个接口没调通 没有数据展示~ userStore.badgeDate是VUEX全部存的日历数据 <template><!-- 日历组件 --><el-date-pickerref"elPicker":size"size"v-model"dateTimeValue":type"dateType":range-separator"rang…

当你项目服务器磁盘报警

当你们公司运维收到这样的邮件&#xff0c;大概率日志文件过大引起的 在Linux下如何不停止服务,清空nohup.out文件呢&#xff1f; nohup.out会一直一直自己增长下去&#xff0c;如果你的服务器硬盘不给力的话&#xff0c;很容易把应用也挂掉&#xff08;硬盘没空间 &#xff0…

如何理解 TypeScript 中命名空间与模块?两者都有那些区别?如何更好的应用?

在 TypeScript 中&#xff0c;命名空间&#xff08;Namespace&#xff09;和模块&#xff08;Module&#xff09;是两种不同的代码组织方式&#xff0c;用于组织和管理代码结构&#xff0c;避免命名冲突和提高可维护性。虽然它们都可以将代码划分为不同的逻辑单元&#xff0c;但…

基于Qwen-Agent框架的Function Call及ReAct方式调用自定义工具

本文主要基于ollama加载的qwen2.5模型以及Qwen-Agent框架,实现对工具的自主定义和准确调用。调用方式上尝试了Function Call及ReAct这两种大的方向,并探索了流式与非流式生成方式、串行与并行的函数调用、以及中英语言的提示词模版的效果比较。 文章目录 准备工作工具定义模型…