Работа под ASP.net core 2.2 со страницей Razzor: я использую фоновые сервисы, использующие SingalR, и я хочу использовать токен (store in cookie) в этом фоновом сервисе. Я хочу получить свой HttpContext в фоновом сервисном классе. Как я могу его получить?
Мои попытки: Получить httpcontext из файла startup.cs (я не могу это сделать)
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
// context isnt defined
var token = context.User.Claims.FirstOrDefault(c => c.Type == "API")?.Value;
services.AddHostedService<MyBackgroundClass>(token);
}
Вторая попытка: получить httpcontext с помощью внедрения зависимости?
MyBackgroundClass.cs:
[Authorize]
public class MyBackgroundClass : BackgroundService
{
private readonly IHubContext<BigScreenHub> _hub;
private readonly List<WorkerInfo> WorkerInfos;
public MyBackgroundClass(IHubContext<BigScreenHub> hub, IOptions<AppSettings> settings, ...)
{
_hub = hub;
WorkerInfos = new WorkerInfoProvider(settings.Value.SomeStaticParam,"Need token here", settings.Value.ServicesUrl).WorkerInfos;
}
}