我可以看到HubConnection中有一个选项可以通过客户端的url请求传递参数。有没有办法从 JS 或 .NET 客户端通过 http header 传递特定 token ?
最佳答案
没有简单的方法可以使用 JS 或 .NET 客户端为 SignalR 请求设置 HTTP header ,但您可以将参数添加到将作为每个 SignalR 请求的一部分发送的查询字符串:
JS 客户端
$.connection.hub.qs = { "token" : tokenValue };
$.connection.hub.start().done(function() { /* ... */ });
.NET 客户端
var connection = new HubConnection("http://foo/",
new Dictionary<string, string>
{
{ "token", tokenValue }
});
在中心内,您可以通过上下文访问社区名称:
Context.QueryString["token"]
您也可以在建立持久连接时添加到查询字符串。
编辑:现在可以在 .NET SignalR 客户端上设置 header ,正如一些评论者指出的那样。
在 .NET 客户端上设置 header
var connection = new HubConnection("http://foo/");
connection.Headers.Add("token", tokenValue);
关于signalr - 通过 http header SignalR 传递 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528221/