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

embedded/2024/11/25 8:51:19/

  采用基于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.ppmy.cn/embedded/140346.html

相关文章

【PHP】 环境以及插件的配置,自学笔记(一)

文章目录 环境的准备安装 XAMPPWindowMacOS 配置开发环境Vscode 关于 PHP 的插件推荐Vscode 配置 php 环境Apache 启动Hello php配置热更新 参考 环境的准备 下载 XAMPP , 可以从 官网下载 https://www.apachefriends.org/download.html 安装 XAMPP XAMPP 是一个跨平台的集成开…

jquery还有其应用场景,智慧慢慢地被边缘化,但不会消亡

一、jQuery 的辉煌过往 jQuery 的诞生与崛起 在前端开发的漫长历史中,2006 年诞生的 jQuery 犹如一颗耀眼的新星划破天际。它由 John Resig 创造,一出现便以其独特的魅力迅速吸引了广大开发者的目光。在那个前端技术发展相对缓慢的时期,jQue…

CTF之密码学(培根密码)

培根密码,又名倍康尼密码(Bacons cipher),是由法兰西斯培根发明的一种隐写术,属于密码学领域的一种替换密码。以下是关于培根密码的详细介绍: 一、原理 培根密码本质上是一种二进制密码,但它没…

大宗商品行业区块链应用

应用场景 区块链技术具有透明性、去中心化、不可篡改等特点,因此可以在大宗商品定价方面得到应用。通过区块链技术,相关交易的各方可以在无需依赖中心化第三方的情况下,实时、准确地获取定价信息。这种技术的应用能够提高效率、降低成本、提…

枫清科技亮相 2024 中国 5G+工业互联网大会,推动 AI 赋能新型工业化

11 月 19 日,2024 中国 5G工业互联网大会在武汉盛大开幕,吸引了来自国内外的行业专家与领先企业。本次大会以“实数融合 智造翘楚”为主题,重点围绕 5G 与工业互联网的深度融合应用、人工智能、智能网联汽车等领域展开讨论与成果展示。作为行…

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式

0. 制作过程 如果你想知道这个镜像是如何制作的,请看下面的教程,如果你只想拿到镜像。那就往下看就好了 链接: 1. 获取源码 源码下载请参考:OHOS_5.0中的[源码下载]章节,建议使用镜像站点下载。 2. 获取镜像 云盘上…

C++设计模式之工厂模式

动机 在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种封装机制来避免客户程序和这种…

Vue前端进阶面试题目(二)

虛拟 DOM 的解析过程是怎样的? 虚拟DOM(Virtual DOM)是Vue等现代前端框架为了提高页面渲染性能而采用的一种技术。其解析过程大致如下: 创建虚拟DOM树:当应用的状态发生变化时,会生成一个新的虚拟DOM树,…