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。并输入用户名和密码后
可以看到:
本文来自博客园,作者:太太怕我,转载请注明原文链接:https://www.cnblogs.com/Andy-Blog/p/18219553
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南