我读了这篇文章http://www.asp.net/signalr/overview/security/introduction-to-security#connectiontoken http://www.asp.net/signalr/overview/security/introduction-to-security#connectiontoken
JS客户端
$.connection.hub.qs = { "token" : tokenValue };
$.connection.hub.start().done(function() { /* ... */ });
.NET客户端
var connection = new HubConnection("http://foo/",
new Dictionary<string, string>
{
{ "token", tokenValue }
});
在 Hub 内部,您可以通过上下文访问社区名称:
Context.QueryString["token"]
在 .NET 客户端上设置标头
var connection = new HubConnection("http://foo/");
connection.Headers.Add("token", tokenValue);
我注意到我们可以将一些令牌值作为查询字符串从客户端传递到集线器函数......如果我传递任何内容,因为查询字符串不安全。因此,请告诉我以安全方式从客户端向集线器功能传递令牌值的最佳方法,因此没有人可以破解/更改或重用该令牌值。
一个人说SignalR uses encryption and a digital signature to protect the connection token.
。
所以请告诉我信号器首先加密令牌值然后从客户端传递到集线器是真的吗?
建议我如何以安全的方式将令牌值传递到集线器。谢谢
您可以在 javascript 客户端中使用标头,如下所示:
$.signalR.ajaxDefaults.headers = { Authorization: "Bearer " + yourToken };
现在不是 hacky,而是一个全局设置,您可以在启动或成功的身份验证响应时执行一次!享受!
现在,只要我能找到一种方法来根据每个请求覆盖它,这样我就可以让用户模拟沙箱为我的具有管理角色的用户工作......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)