我如何配置一个用户具有只读访问权限,而另一用户具有对Hangfire仪表板的完全访问权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何配置一个用户具有只读访问权限,而另一用户具有对Hangfire仪表板的完全访问权限?相关的知识,希望对你有一定的参考价值。

如何配置一个用户具有只读访问权限,而另一用户具有对仪表板的完全访问权限?

答案

您可以使用DashboardOptions和AuthorizationFilter设置只读和编辑访问权限。 See Documentation from Hangfire

public class HangFireAuthorizationFilter : IDashboardAuthorizationFilter
{
    public bool Authorize([NotNull] DashboardContext context)
    {
        string user = HttpContext.Current.User.Identity.Name;
        var adminAuthz = InternalMethod.lookup_db_for_user_access(user, "View");

        return adminAuthz != null;
    }

    public bool IsUserAuthorizedToEditHangfireDashboard([NotNull] DashboardContext context)
    {
        string user = HttpContext.Current.User.Identity.Name;
        var adminAuthz = InternalMethod.lookup_db_for_user_access(user, "Edit");

        return adminAuthz != null;
    }
}

在Hangfire仪表板初始化中使用上述过滤器

public void Configuration(IAppBuilder app)
{
    var hangfireAuthz = new HangFireAuthorizationFilter();
    var dashboardOptions = new DashboardOptions
    {
        Authorization = new[] { hangfireAuthz },
        IsReadOnlyFunc = (DashboardContext context) => !hangfireAuthz.IsUserAuthorizedToEditHangfireDashboard(context)
    };

    app.UseHangfireDashboard("/hangfire", dashboardOptions);
}

以上是关于我如何配置一个用户具有只读访问权限,而另一用户具有对Hangfire仪表板的完全访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

具有只读访问权限的 Sql 虚拟表:插入、删除、更新?

查找一列中具有相同值而另一列中具有其他值的行?

如何在 Linux 上设置具有 HTTP 访问权限的 Git 服务器

如何为 Postgresql 中的所有数据库创建具有只读权限的用户?

kubernetes创建一个dashboard只读权限的用户(具有exec权限)

让linux下的用户只有只读权限