当前位置: 首页 > news >正文

为CAP面板添加简单的Authentication登录验证功能 C#|.net

终于搞定了CAP Dashboard的登录验证功能!

因为网上找不到简单的CAP Dashboard的登录验证功能,所以这个功能摸索着开发了好久。

这个Authentication认证功能,不仅适用于CAP面板,也适用于懒得开发登录页面,但是又需要简单用户名密码登录的网页。

做过后端的比较熟悉,CAP面板有个界面,可以通过域名加cap访问:

但是这个面板直接通过url就可以访问了,完全没有任何账号保护,任何人知道url地址就可以直接访问!

Hangfire Dashboard有自己的面板,可以使用用户名和密码做简单的认证。

LogDashboard也有自己的面板,可以使用用户名和密码做简单的认证。

如下图:

但是CAP的面板是直接暴露的,没有直接的认证功能,知道url就可以直接进入!

虽然CAP官方提供了文档,但是没有简单的用户名和密码的认证示例。

https://cap.dotnetcore.xyz/user-guide/zh/monitoring/dashboard/

简单到不知道它在表达什么:

于是只能自己摸索了。

CAP面板引用的包:

DotNetCore.CAP.Dashboard

认证需要另外引用一个包:

Microsoft.AspNetCore.Authentication

然后创建自己的认证处理器:

using System.Net.Http.Headers;
using System.Security.Claims;
using System.Text;
using System.Text.Encodings.Web;
using Microsoft.AspNetCore.Authentication;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;namespace Extensions
{/// <summary>/// 自定义面板认证/// </summary>public static class MyAuthDefaults{/// <summary>/// 自定义面板认证-协议名/// </summary>public const string Policy = "MyAuthPolicy";/// <summary>/// 自定义面板认证-方案名/// </summary>public const string Scheme = "MyAuthScheme";}/// <summary>/// 自定义面板认证配置/// </summary>public class MyAuthSchemeOptions : AuthenticationSchemeOptions { }/// <summary>/// 自定义面板认证处理器/// </summary>public class MyAuthHandler : AuthenticationHandler<MyAuthSchemeOptions>{/// <summary>/// 自定义面板认证处理器/// </summary>public MyAuthHandler(IOptionsMonitor<MyAuthSchemeOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock){}/// <summary>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Echarts 在折线图平滑位置处添加该处信息
  • 迅狐短视频矩阵管理系统核心功能
  • wordpress里面嵌入哔哩哔哩视频的方法
  • Flink任务如何跑起来之 1.DataStream和Transformation
  • (四)React组件、useState、组件样式
  • 男士内裤买便宜还是贵的?2024年高性价比男士内裤汇总分享
  • 戴尔R720服务器(4)虚拟机性能测试
  • feedparser - Python 解析Atom和RSSfeed
  • 49.Python-web框架-Django解决多语言redirect时把post改为get的问题
  • 20块钱就能搞定的FOC无刷电机控制方案!miniFOC
  • AndroidX Navigation 反复创建Fragment问题修复
  • 黄金投资软件选择标准:多角度全面考量指南
  • DLL load failed while importing lib: 找不到指定的模块。(已解决)
  • 达索PLM在芯片行业的运用浅谈
  • LabVIEW Actor架构特点与适用范围
  • @angular/forms 源码解析之双向绑定
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Git学习与使用心得(1)—— 初始化
  • If…else
  • Java到底能干嘛?
  • js继承的实现方法
  • Less 日常用法
  • Linux Process Manage
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PAT A1092
  • Spring Cloud Feign的两种使用姿势
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 后端_ThinkPHP5
  • 前端工程化(Gulp、Webpack)-webpack
  • 删除表内多余的重复数据
  • 通过npm或yarn自动生成vue组件
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)bark-ml
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (函数)颠倒字符串顺序(C语言)
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (七)c52学习之旅-中断
  • (四) 虚拟摄像头vivi体验
  • (学习日记)2024.01.19
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)关于pipe()的详细解析
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (状压dp)uva 10817 Headmaster's Headache
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET C# 使用 iText 生成PDF
  • .net core 6 redis操作类
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 微服务 服务保护 自动重试 Polly
  • .NetCore发布到IIS