1, the definition of class authorization check DyDashboardAuthorizationFilter
/// <summary> /// Hangfire仪表盘配置授权 /// </summary> public class MyDashboardAuthorizationFilter : IDashboardAuthorizationFilter { public bool Authorize([NotNull] DashboardContext context) { var httpContext = context.GetHttpContext(); var header = httpContext.Request.Headers["Authorization"]; if (string.IsNullOrWhiteSpace(header)) { SetChallengeResponse(httpContext); return false; } var authValues = System.Net.Http.Headers.AuthenticationHeaderValue.Parse(header); if (!"Basic".Equals(authValues.Scheme, StringComparison.InvariantCultureIgnoreCase)) { SetChallengeResponse(httpContext); return false; } var parameter = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(authValues.Parameter)); var parts = parameter.Split(':'); if (parts.Length < 2) { SetChallengeResponse(httpContext); return false; } var username = parts[0]; var password = parts[1]; if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password)) { SetChallengeResponse(httpContext); return false; } if (username == "user" && password == "paw") { return true; } SetChallengeResponse(httpContext); return false; } private void SetChallengeResponse(HttpContext httpContext) { httpContext.Response.StatusCode = 401; httpContext.Response.Headers.Append("WWW-Authenticate", "Basic realm=\"Hangfire Dashboard\""); httpContext.Response.WriteAsync("Authentication is required."); } }
2, the method startup.cs's configuration
// Enable hangfire scheduled task app.UseHangfireServer (); // access path control and authorization dashboard configuration app.UseHangfireDashboard ( " / hangfire " , new new Hangfire.DashboardOptions { the Authorization = new new [] { new new MyDashboardAuthorizationFilter ()} }) ;
3, open a browser: http: // localhost: port / hangfire. And enter the user name and the password
can be seen: