Панель управления Hangfire в .Net Core Web API Project - PullRequest
0 голосов
/ 20 сентября 2018

У нас есть проект веб-API .Net Core 2.0.Я добавил там похмелье.У нас нет веб-страницы в проекте, и я использую JWT для авторизации.Поэтому я не могу выполнить авторизацию для зависания при помощи Авторизации (контекст DashboardContext).Можем ли мы передать какой-то ключ API по URL-адресу, чтобы авторизовать пользователя для панели инструментов?

Спасибо

1 Ответ

0 голосов
/ 24 сентября 2018

Реализация класса IAuthorizationDashboardFilter

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

       // here you can access the current principle 
       return httpContext.User.Identity.IsAuthenticated;
   }
}

Зарегистрируйте фильтр в своем конвейере OWIN, как это, после любого метода аутентификации, который вы используете.Тогда заявка на вход пользователя будет доступна в фильтре

public void Configuration(IAppBuilder app)
{
    app.UseCookieAuthentication(...); // Authentication - first
    app.UseHangfireDashboard("/hangfire", new DashboardOptions
    {
         Authorization = new [] { new MyAuthorizationFilter() }
    });       // Hangfire - last
}
...