我的目标是:使用自定义标头和我自己的令牌来针对我的信号器服务对用户或机器进行身份验证。
我们一直在 ASP.net WEB API 下成功地使用这种方法来执行我们自己的基于自定义声明的身份验证和授权。
我们的 Web Api 如下:
protected void Application_Start()
{
GlobalConfiguration.Configuration.MessageHandlers.Add(new AuthorizationHeaderHandler());
}
然后我们会有一个 AuthorizationHandler 覆盖 Thread.CurrentPrincipal = principal; 我们就完成了。
在 SignalR 中,我尝试实现: 1. 使用 Authorize 标记我们的集线器 2. 实施自定义授权属性 3. 尝试自定义模块。但是,如果我们发送正确的标头,除了返回 true 之外,我仍然没有让 Context.User 更改为我们生成的基于声明的主体。
但是我们永远无法让 Context.User 显示用于连接到集线器的实际用户。
欢迎任何建议。
我们想要实现这一点的主要原因是因为我们有几个不同的用户/机器类型连接到我们的系统。
大家有什么建议。