Ядро Hangfire Dashboard .net - аутентификация работает локально, а не на сервере - PullRequest
0 голосов
/ 30 мая 2018

Я реализовал аутентификацию для Hangfire Dashboard, как рекомендовано (панель не видна на сервере без аутентификации).

Она не работала на сервере, поэтому я просто установил Авторизацию, чтобы она всегда былаtrue:

В файле startup.cs:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //Other stuff here
    app.UseHangfireDashboard("/hangfire", new DashboardOptions
    {
        Authorization = new[] { new MyAuthorizationFilter() }
    });
}

В моем собственном классе:

/// <summary>
/// Used for Hangfire Dashboard only
/// </summary>
public class MyAuthorizationFilter : IDashboardAuthorizationFilter
{
    public bool Authorize(DashboardContext context)
    {
        return true;
    }
}

Однако, даже при этом возвращается ошибка 403 - и все же работает нормальнона местном уровне.Предыдущая авторизация также работает локально, но не на сервере.

Я искал в Google, но не могу найти никого с этой ошибкой - как я могу ее исправить?

Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

для работы, как показано ниже:

class MyAuthorizationFilter : IDashboardAuthorizationFilter
    {
        public bool Authorize(DashboardContext context)
        {
            var httpContext = context.GetHttpContext();

            // Allow all authenticated users to see the Dashboard (potentially dangerous).
            return httpContext.User.Identity.IsAuthenticated;
        }
    }

А при запуске используйте метод, как показано ниже:

   app.UseAuthentication();

        app.UseHangfireDashboard(options: new DashboardOptions()
        {
            Authorization = new IDashboardAuthorizationFilter[]
            {
                new MyAuthorizationFilter()
            }
        });

        app.UseHangfireServer();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
...