我读了这篇文章http://www.asp.net/signalr/overview/security/introduction-to-security#connectiontoken
$.connection.hub.qs = { "token" : tokenValue };
$.connection.hub.start().done(function() { /* ... */ });
Run Code Online (Sandbox Code Playgroud)
var connection = new HubConnection("http://foo/",
new Dictionary<string, string>
{
{ "token", tokenValue }
});
Run Code Online (Sandbox Code Playgroud)
在Hub中,您可以通过Context访问社区名称:
Context.QueryString["token"]
Run Code Online (Sandbox Code Playgroud)
var connection = new HubConnection("http://foo/");
connection.Headers.Add("token", tokenValue);
Run Code Online (Sandbox Code Playgroud)
我注意到我们可以将一些令牌值从客户端传递给hub函数作为查询字符串.....如果我传递任何东西,因为查询字符串不安全.所以告诉我以安全的方式从客户端到集线器功能传递令牌值的最佳方法,因此没有人可以破解/更改或重用该令牌值.
一个人说SignalR uses encryption and a digital signature to protect the connection token..所以请告诉我,信号器首先加密令牌值然后从客户端传递到集线器是真的吗?
建议我如何以安全的方式将令牌值传递给集线器.谢谢
Bon*_*Bon 11
您可以在javascript客户端中使用标头,例如:
$.signalR.ajaxDefaults.headers = { Authorization: "Bearer " + yourToken };
Run Code Online (Sandbox Code Playgroud)
现在不是hacky,是一个全球设置,你可以在启动或成功的auth响应一次!请享用!
现在,只有我能找到一种方法来基于每个请求覆盖它,这样我才能得到一个用户模拟沙箱,为我的用户提供管理角色...
当客户端发起连接时,服务器创建并加密连接令牌并将其发送给客户端。从此时起,客户端每次向服务器发送请求时都必须发送连接令牌。服务器在收到请求时验证连接令牌。如果您问如何防止多个客户端使用相同的令牌,那么我认为您需要考虑身份验证。
| 归档时间: |
|
| 查看次数: |
5844 次 |
| 最近记录: |