概述

Hangfire Dashboard为我们提供了可视化的对后台任务进行管理的界面,我们可以直接在这个页面上对定时任务进行删除、立即执行等操作,如下图所示:


默认情况下,这个页面只能在部署Hangfire的机器上进行访问,想要在其他地方进行访问,需要配置权限认证模块:Hangfire.Dashboard.Authorization。

引用安装

1、项目地址:https://github.com/HangfireIO/Hangfire.Dashboard.Authorization

2、在已经安装Hangfire基本组件的项目中,通过Nuget程序包管理器添加Hangfire.Dashboard.Authorizaiton或Nuget控制台添加。通过Nuget程序包管理控制台安装的命令:

  • Install-Package Hangfire.Dashboard.Authorization

使用

在Startup.cs中的Configuration方法中添加以下代码:

在代码中的Login和Password后面写登录的用户名和密码,这样在下次打开Hangfire的Dashboard时,就会弹出需要输入用户名和密码的窗口了,输入之后就可了打开Dashboard了

var filter = new BasicAuthAuthorizationFilter(

new BasicAuthAuthorizationFilterOptions

{

SslRedirect = false,

// Require secure connection for dashboard

RequireSsl = false,

// Case sensitive login checking

LoginCaseSensitive = false,

// Users

Users = new[]

{

//new BasicAuthAuthorizationUser

//{

//    Login = "Administrator-1",

//    // Password as plain text

//    PasswordClear = "test"

//},

new BasicAuthAuthorizationUser

{

Login = "×××",//用户名

// Password as SHA1 hash

Password = new byte[]{ 0x54, ..., 0xa8 }//密码

}

}

});

var options = new DashboardOptions

{

AuthorizationFilters = new[] {

filter

}

};

app.UseHangfireDashboard("/TaskManager", options); //可以改变Dashboard的url

登录密码的生成

string password = "<your password here>";

using (var cryptoProvider = System.Security.Cryptography.SHA1.Create())

{

byte[] passwordHash = cryptoProvider.ComputeHash(Encoding.UTF8.GetBytes(password));

string result = "new byte[] { " +

String.Join(",", passwordHash.Select(x => "0x" + x.ToString("x2")).ToArray())

+ " } ";

}

Reference:

[1]https://github.com/HangfireIO/Hangfire.Dashboard.Authorization

[2]https://www.cnblogs.com/ecin/p/6201262.html

[3]https://www.cnblogs.com/lightmao/archive/2017/07/29/7254197.html Hangfire实战(一)------Hangfire+SQL Server实现简单的任务调度

Hangfire实战二——为DashBoard页面添加权限认证的更多相关文章

  1. .NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

    内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用Ope ...

  2. 注册中心Eureka页面添加用户认证

    我们需要登录即可访问到Eureka服务,这样其实是不安全的 为Eureka添加用户认证. 第一步,为itcast-microservice-eureka添加安全认证依赖: 第二步,增加applicat ...

  3. kubernetes实战篇之Dashboard的访问权限限制

    系列目录 前面我们的示例中,我们创建的ServiceAccount是与cluster-admin 绑定的,这个用户默认有最高的权限,实际生产环境中,往往需要对不同运维人员赋预不同的权限.而根据实际情况 ...

  4. kubernetes Dashboard 使用RBAC 权限认证控制

    kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,[包地址在此](https://market.aliyun.com/products/56014009/ ...

  5. Eureka实战-4【开启http basic权限认证】

    在我们实际生产环境中,都需要考虑到一个安全问题,比如用户登录,又或者是eureka server,它对外暴露的有自己的rest API,如果没有安全认证,也就意味着别人可以通过rest API随意修改 ...

  6. Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)

    用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...

  7. 【Spring Cloud笔记】Eureka注册中心增加权限认证

    在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...

  8. Eureka注册中心增加权限认证

    在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...

  9. python测试开发django-rest-framework-61.权限认证(permission)

    前言 用户登录后,才有操作当前用户的权限,不能操作其它人的用户,这就是需要用到权限认证,要不然你登录自己的用户,去操作别人用户的相关数据,就很危险了. authentication是身份认证,判断当前 ...

随机推荐

  1. 【Vulnhub】FristiLeaks v1.3

    靶机信息 下载连接 https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova.torrent https://download.vuln ...

  2. 视频的清晰度 1080p 720p 2k 4k是什么意思?

    在bilibili上看了一些个视频,发现它视频的清晰度有很多种选法.诸如720p,1080p,2k,4k,以及我看直播时经常遇见的蓝光,超清.它们的含义分别是什么呢?为了搞清楚这个问题,也为了以后的观 ...

  3. redis缓存使用SpringDataRedis

    1. SpringDataRedis简介 1.1项目常见问题思考 我们目前的系统已经实现了广告后台管理和广告前台展示,但是对于首页每天有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪.那如何解决 ...

  4. 基于node的前端项目编译时内存溢出问题

    解决方法: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory JavaScript堆内存不足,这里说的 Jav ...

  5. 安卓开发-Activity-多个Activity的开发方法。

    原文链接:https://blog.csdn.net/weixin_38420342/article/details/84344496 一.切换Activity的5种方式 Intent intent ...

  6. Cookie的简介与使用

    Cookie 历来指就着牛奶一起吃的点心.然而,在因特网内,"Cookie"这个字有了完全不同的意思.那么"Cookie"到底是什么呢?"Cookie ...

  7. 关于HTTP 请求方式: GET和POST的比较的本质

    什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...

  8. FastJson对实体类和Json还有JSONObject相互转换

    1. 实体类或集合转JSON串 String besnString = JSONObject.toJSONString(实体类); 2.JSON串转JSONObject JSONObject json ...

  9. 人脸识别Demo解析C#

    概述 不管你注意到没有,人脸识别已经走进了生活的角角落落,钉钉已经支持人脸打卡,火车站实名认证已经增加了人脸自助验证通道,更别提各个城市建设的『智能城市』和智慧大脑了.在人脸识别业界,通常由人脸识别提 ...

  10. 使用JUnit 和Jacoco进行单元测试

    Jacoco配置 <dependency> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven ...