.Net Core定時調度hangfire:儀表板UI


儀表盤就是hangfire的網頁界面,有要執行的任務、執行情況、報錯等后台的敏感信息。

調用儀表盤的方法非常簡單,在Starup文件中如下代碼:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //..
     app.UseHangfireDashboard();
    //..
}

在瀏覽器中輸入' 你的地址/hangfire '即可訪問。

為了安全儀表板只能本地訪問,但是我們可以通過實現自己的IDashboardAuthorizationFilter接口來實現身份驗證的訪問,如下:

public class MyAuthorizationFilter : IDashboardAuthorizationFilter
{
    public bool Authorize(DashboardContext context)
    {
        var httpContext = context.GetHttpContext();
        // 允許所有經過身份驗證的用戶查看儀表板(存在潛在危險)。
        return httpContext.User.Identity.IsAuthenticated;
    }
}

或者通過使用 hangfire.dashboard.authorization 來快捷實現。

因為儀表盤中存在刪除任務等關鍵操作,默認是關閉的,可以通過設置 IsReadOnlyFunc屬性的 Dashboardoption來設置,如下:

app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
    IsReadOnlyFunc = (DashboardContext context) => true
});

默認情況下,UseHangfireDashboard方法將儀表板映射到/hangfire路徑,我們可以自己修改訪問路徑:

//映射到/jobs路徑
app.UseHangfireDashboard("/jobs");

儀表盤的右上角存在一個返回站點的鏈接,我們可以對其進行更改:

// 更改返回站點的鏈接地址
var options = new DashboardOptions { AppPath = "http://your-app.net" };
// 使“返回站點”鏈接適用於子文件夾應用程序
var options = new DashboardOptions { AppPath = VirtualPathUtility.ToAbsolute("~") };
app.UseHangfireDashboard("/hangfire", options);

儀表盤不只是有一個,還可以存在多個,映射顯示不同存儲介質的存儲信息:

var storage1 = new SqlServerStorage("Connection1");
var storage2 = new SqlServerStorage("Connection2");

app.UseHangfireDashboard("/hangfire1", new DashboardOptions(), storage1);
app.UseHangfireDashboard("/hangfire2", new DashboardOptions(), storage2);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM