#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"];