У меня есть следующее созвездие:
Я использую основной веб-API-проект asp.net, который также включает HubContext.Первое, что пользователь должен сделать, это сделать вызов API на мой UsersController : BaseController
.Здесь он / она вызывает маршрут api/login
, передавая соответствующие учетные данные.Возвращаемым значением функции Login()
является JwtBearerToken, который пользователь с тех пор использует для всех других вызовов API.
Как только токен был выдан, пользователь (Клиент) устанавливает соединение SignalR через мой ConnectionHub : Hub
.
Пока все работает хорошо, пользователь проходит аутентификацию с использованием токена при вызове API.методы, и я также могу отслеживать соответствующее состояние сеанса внутри области моего ConnectionHub
.
Теперь я должен получать идентификатор сеанса пользователей (SignalR) всякий раз, когда он / она делает вызов API.
т.е. когда пользователь вызывает метод в моем UsersController
, я хочу сделать что-то вроде этого:
[HttpGet]
public ActionResult<List<User>> GetAll()
{
// Here I want to retrieve the (SignalR) session id of the user calling this method.
return Ok( userRepository.GetAllUsers() );
}
Пока единственная идея, которую я имею, состоит в том, чтобы заставить пользователя отправить свой SignalR-SessionId св соответствии с вызовом API, но то, что я хотел бы добиться, это прочитать идентификатор на стороне сервера.Как мне этого добиться?