概述
Hangfire Dashboard為我們提供了可視化的對后台任務進行管理的界面,我們可以直接在這個頁面上對定時任務進行刪除、立即執行等操作,如下圖所示:

引用安裝
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())
+ " } ";
}