首页 > 编程语言 >asp.net core 基于Cookies的认证,自定义认证方案

asp.net core 基于Cookies的认证,自定义认证方案

时间:2022-12-09 23:24:54浏览次数:74  
标签:core 自定义 登录 方案 认证 Cookie 路由

前言:

  看完《ASP.NET Core 6框架揭秘》很久了,这几天我发现自己对基于Cookie的认证还是有点疑惑,特别是自定义“认证方案”。

  所以写代码加强理解。

  别误会,我不会介绍整个过程。如果想了解详情,推荐大家看大佬文章,https://www.cnblogs.com/artech/ 。

Asp.net Core 认证

  相关认证方面的详情信息如下图

<iframe frameborder="0" height="240" id="embed_dom" src="https://www.processon.com/view/link/6390afebf1d65d6fc3ebfb7e?embed=true" style="display: block; width: 1040px; height: 884px" width="320"></iframe>

  代码实现一个很简单的自定义认证处理器

    1.创建一个认证方案名称

      

     2. AddAuthentication(CustomAuthConfiguration.CustomAuthScheme) 这一步是添加一个系统默认的认证方案,此处我替换成了自定义的方案

       AddCookie这里基于cookie的认证处理,将此处的认证方案替换成了自定义的 

       下图代码表示:添加一个基于Cookie的自定义的认证方案,认证处理器使用Cookie处理

      

      Cookie认证处理器如下图

       

     3.登录,登录的过程就是认证用户是否合法,通常的情况下就是校验用户账密。此处省略用户输入账号密码校验过程,直接创建一个假身份“ClaimsPrincipal”,再调用context.SignInAsync进行登录。这里的登录过程就是向客户端发送一个加密的Cookie,表示用户合法的身份信息的“票据”。

      

     4. 登出,实际上就是将客户端的用于身份认证的Cookie删除,或者说失效

      

     5.创建一个只有经过认证的用户才可以访问的路由,或者说页面吧。

      

       

     6.运行一下程序

      a.程序默认走的路由,运行后如下图

        

         

       b.在浏览器中输入 http://localhost:5133/auth 按下回车键,当访问/auth路由时,此时处于未认证状态,所以重定向到了Login路由,进行登录。ReturnUrl表示认证成功后重定向到刚才访问的路由。如下图,执行到了Login的逻辑。

        

        

       c.登录代码执行完成后,向客户端的响应中添加Cookie。看下图,cookie名称中含“自定义认证方案名称”。

        

       d.登录后就可以进入到/auth路由了。

        

         

       e.执行下登出,浏览器地址栏中输入 localhost:5133/auth ,如下图,执行登录操作。登录实际上就表示将Cookie设置为过期。

        

         

  演示代码

      我的仓库,https://github.com/qiqiqiyaya/Learning-Case/tree/main/Asp.net%20Core%20Custom%20Authentication ,如有帮助的话,可给颗小星星

      

      第一个就是上述代码例子。

      第二个例子中创建了一个CookieAuthenticationHandler,参考默认的Cookie添加方案,写了个自定义方法AddCustomCookie。主要目的就是调试一下

      

       

       

 

 

    

标签:core,自定义,登录,方案,认证,Cookie,路由
From: https://www.cnblogs.com/youlicc/p/16964900.html

相关文章

  • IIS 运行.net core程序时遇到的问题总结
    1、权限问题解决:新增IIS默认用户IIS_USERS2、问题:Mvc错误解决:安装2个包(网上资源自己找)3、问题:web.config解决1:可能是url地址重写的问题,把配置文件内这一段注释......
  • core文件设置
    core文件设置1.取消大小限制;vi/etc/profileulimit-cunlimited2.添加进程名vi/proc/sys/kernel/core_pattern添加下面的内容:core.%p_%esysctl-wkernel.core_use......
  • ASP .NET Core 使用 Agile Config配置中心
    当服务逐渐的增多,对各服务的配置管理愈加重要,轻量级的配置中心,入手或是搭建都简单许多,基于.netcore开发的轻量级配置中心AgileConfig,功能强大,上手简单。AgileConfig支持......
  • .net core 中 WebApiClientCore的使用
    WebApiClient接口注册与选项1配置文件中配置HttpApiOptions选项配置示例"IUserApi":{"HttpHost":"http://www.webappiclient.com/","UseParameterProper......
  • 上海ISO三体系认证办理常见流程
    ISO三体系认证是国际上标准化体系认证的结合,又称三标体系认证或三标一体,包括ISO9001质量管理体系、ISO14001环境管理体系、ISO45001职业安全健康管理体系。认证三体系标准已......
  • [2core]Log和Log4net的配置使用
    一、准备尽管在asp.netcore中几乎把所有能DI化的技术、知识和概念都依赖注入,不过本人还是想不让自己的项目那么DI化,完全没有必要“为了DI而DI”。这篇文章记录日志在asp.......
  • 使用IKExpression自定义函数
    背景通过字符串匹配业务表每一条记录的部分字段,来对记录打上标签要求规则可以配置调整规则支持复合运算、逻辑运算开始实现将规则放到数据库中维护从数据库......
  • AspNetCoreWebAPI使用Serilog通过配置appsettings记录日志
    继上一篇AspNetCore中使用Serilog记录日志-点终将连成线-博客园(cnblogs.com)中的日志记录配置都是写死在Program中的,本篇是通过配置文件进行配置日志记录的参数1、......
  • 什么是UKCA认证?玩具办理UKCA测试标准周期。
    什么是UKCA认证?UKCA是英国合格认定(UKConformityAssessed)的简称.2019年2月2日,英国公布了在无协议脱欧的情况下将会采用UKCA标志方案。2021年1月1日之后,开始正式实施新标......
  • 自定义jar包供ERP使用
    功能要求:需要在ERP中调用其他web服务或者自身web服务(比如跨账套过账等)1.编写java程序,并将程序打包成jar包importorg.apache.http.HttpEntity;importorg.apache.http.......