Как создать учетные данные клиента SignalR

#asp.net-core #signalr

#asp.net-ядро #signalr

Вопрос:

Я пытаюсь создать учетные данные или утверждения другим способом для клиента SignalR, например, таким образом

 connection = new HubConnectionBuilder().WithUrl(URL, opt => opt.Headers.Add("Bearer", myJWT)).
        WithAutomaticReconnect(new[] { TimeSpan.FromSeconds(10) }).
        Build();
  

Но в моем серверном концентраторе я ничего не вижу в моем концентраторе при этом обратном вызове

 public override Task OnConnectedAsync()
  

Соединение установлено нормально, я вижу это, но в объектах «Connect» и «hubContext» объект больше не видит (пользователь, заголовки, идентификатор) его пустым.
У меня нет специальной конфигурации безопасности моей службы SignalR, я настроил только конечную точку SignalR, но я ожидал бы увидеть хотя бы заголовки клиентов в моем серверном концентраторе, но нет.

Ответ №1:

Вы можете получить это в OnConnectedAsync методе, используя это свойство:

 Context.GetHttpContext().Request
  

И просто предупреждаю, вы хотите сделать заголовок авторизации следующим образом:

 opt.Headers.Add("Authorization", myJWT)
  

Затем возьмите это вот так:

 var token = Context.GetHttpContext().Request.Headers["Authorization"];