asp.net core 中hangfire面板的配置及使用
Posted dayang12525
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net core 中hangfire面板的配置及使用相关的知识,希望对你有一定的参考价值。
1、定义校验授权类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、startup.cs的方法里配置
//启用hangfire 定时任务 app.UseHangfireServer(); //控制仪表盘的访问路径和授权配置 app.UseHangfireDashboard("/hangfire", new Hangfire.DashboardOptions Authorization = new[] new MyDashboardAuthorizationFilter() );
3、浏览器打开:http://localhost:port/hangfire。并输入用户名和密码后
可以看到:
以上是关于asp.net core 中hangfire面板的配置及使用的主要内容,如果未能解决你的问题,请参考以下文章
2021-06-27 .NET高级班 72-ASP.NET Core Hangfire任务调度的使用
同一站点中的 asp net core 2.0 JWT 和 Openid Connect 身份验证
如何在 ASP.Net Core 中使用 IHostedService