如何为自定义网页发布 Hangfire 仪表板?
How can I publish Hangfire Dashboard for a custom web page?
我知道 Hangfire 仅出于安全目的将其仪表板设置为本地。然后如果我想在自定义域中打开它,我必须为其设置授权。我已遵循 配置授权 指南,但我不明白我必须在 app.UseCookieAuthentication(…)
.
中写什么
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
});
它returns我的错误
Can't find namespace for CookieAuthenticationOptions
此代码可能已被弃用并且无法运行。所有关于这个的话题都是几年前的,所以我不知道他们从那时起更新了什么。同时我希望它对所有人开放,所以我真的不需要为任何角色设置身份验证。
正如您在评论评论中所问,如果您想在没有应用程序 运行 的情况下在本地主机上设置 public 访问您的仪表板,您需要添加自定义 DashboardAuthorizationFilter
这将始终return true(授权任何人获得访问权限)。
为此,请按如下方式创建过滤器:
using Hangfire.Dashboard;
namespace your.app.namespace
{
public class PassThroughDashboardAuthorizationFilter : IDashboardAuthorizationFilter
{
/// <inheritdoc />
public bool Authorize(DashboardContext context) => true;
}
}
然后将其添加到您的配置中:
app.UseHangfireDashboard(options: new DashboardOptions
{
Authorization = new List<IDashboardAuthorizationFilter>(){ new PassThroughDashboardAuthorizationFilter() },
IsReadOnlyFunc = context => false // according to your needs
});
我知道 Hangfire 仅出于安全目的将其仪表板设置为本地。然后如果我想在自定义域中打开它,我必须为其设置授权。我已遵循 配置授权 指南,但我不明白我必须在 app.UseCookieAuthentication(…)
.
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
});
它returns我的错误
Can't find namespace for CookieAuthenticationOptions
此代码可能已被弃用并且无法运行。所有关于这个的话题都是几年前的,所以我不知道他们从那时起更新了什么。同时我希望它对所有人开放,所以我真的不需要为任何角色设置身份验证。
正如您在评论评论中所问,如果您想在没有应用程序 运行 的情况下在本地主机上设置 public 访问您的仪表板,您需要添加自定义 DashboardAuthorizationFilter
这将始终return true(授权任何人获得访问权限)。
为此,请按如下方式创建过滤器:
using Hangfire.Dashboard;
namespace your.app.namespace
{
public class PassThroughDashboardAuthorizationFilter : IDashboardAuthorizationFilter
{
/// <inheritdoc />
public bool Authorize(DashboardContext context) => true;
}
}
然后将其添加到您的配置中:
app.UseHangfireDashboard(options: new DashboardOptions
{
Authorization = new List<IDashboardAuthorizationFilter>(){ new PassThroughDashboardAuthorizationFilter() },
IsReadOnlyFunc = context => false // according to your needs
});