【发布时间】:2019-09-08 10:49:55
【问题描述】:
我有以下星座:
我正在使用一个 asp.net 核心 web api 项目,该项目还包括一个 HubContext。用户要做的第一件事就是对我的UsersController : BaseController 进行 api 调用。在这里,他/她调用api/login 路由传递相应的凭据。 Login() 函数的返回值是一个 JwtBearerToken,从那时起用户将其用于所有其他 api 调用。
颁发令牌后,用户(客户端)通过我的ConnectionHub : Hub 建立 SignalR 连接。
到目前为止一切正常,用户在调用 api 方法时使用令牌进行身份验证,我还可以在我的ConnectionHub 范围内跟踪相应的会话状态。
现在我必须在他/她进行 api 调用时检索用户 (SignalR) 会话 ID。
我。 e.当用户在我的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() );
}
到目前为止,我唯一的想法是让用户使用相应的 api 调用发送他的 SignalR-SessionId,但我想要实现的是在服务器端读取 Id。我怎样才能做到这一点?
【问题讨论】:
-
REST的工作方式与signalR或套接字之间存在根本区别,我建议您对此进行一些阅读并重新考虑您的要求。
标签: c# asp.net-core asp.net-core-webapi asp.net-core-signalr