asp.net – SignalR:如何强制认证/终止中心连接服务器端
|
这个问题与另一个线程有关,您可以阅读 here: Forms authentication with SignalR,在那里我尝试了用户 dfowler的帮助和耐心,了解如何在SignalR Hub上执行ASP .NET Forms身份验证. 问题描述:我想只有经过身份验证的用户才能连接SignalR Hub并接收/发送消息. 入侵场景:入侵者可以捕获/访问访问客户端计算机上的临时文件的网页的HTML和Javascript.因此,这个入侵者可以知道设置/使用到Hub的连接所需的所有细节(方法,集线器名称等).
所以我试过这样的东西 public System.Threading.Tasks.Task Connect()
{
if (!Context.User.Identity.IsAuthenticated
|| !(Context.User.IsInRole("role1") || Context.User.IsInRole("role2")
))
throw new Exception("User not authorized");
return null;
}
一旦测试,这个问题是,当Connect方法被调用时,连接已经建立,并且明显的抛出异常将不会有帮助(如果我得到的话,如果正确的情况下连接应该用于在连接时向客户端发送消息,抛出异常只会产生未发送的欢迎消息). 事实上,从我的测试中,客户端仍然可以读取所有的消息(并发送它们). 现在,我想到的方法: >完美的解决方案:拒绝或终止服务器端的连接:没有线索如何在SignalR(我试图找到方法在API,但没有运气) 任何其他方法?任何方式终止服务器端的连接,还是应该接受唯一的真实身份验证是主机网页之一(留下所有的signalR客户端攻击的门)? 编辑 当我使用IConnect.Connect方法无条件抛出异常(浏览器IE9)时,这是客户端 – 服务器通信的顺序: 它看起来像foreverFrame失败,但longPolling的后备正在建立和工作 – 无论如何 – 这之后,在JavaScript中捕获的错误被块 if (connection.state === signalR.connectionState.connecting) {
// Connection hasn't been started yet
throw "SignalR: Connection has not been fully initialized.
Use .start().done() or .start().fail() to run logic after
the connection has started.";
}
解决方法我们有一个问题,我们需要允许完全阻止连接.现在你必须保护每个方法.这不是最干净的,但对于1.0 alpha1,我们将有一些这样做的机制.另外一个问题是,它与所有集线器的连接是相同的,因此您不能拒绝特定集线器的连接. 编辑 实际上,如果你把它连接到我的测试结束.你看到什么行为? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.NET 5中获取AuthenticationProperties
- asp.net-mvc – 如何在ASP.net MVC中正确测试具有数据库调用
- asp.net – 单选按钮而不是下拉列表在mvc 3应用程序?
- ASP.NET多线程如何?
- 使用asp.net连接到mySQL数据库
- asp.net – 替换过时的System.Xml.XmlDataDocument?
- 实时监控ASP.NET Web应用程序的工具和方法?
- asp.net-mvc – 可以更改Html.DropDownListFor生成的html名
- asp.net-mvc – 实体框架4.3 无效的列名称“CreatedOn”
- asp.net-mvc – MVC动作过滤器集合已修改;枚举操作可能无法
- asp.net – 编程控制输出缓存 – 根据参数值禁用
- asp.net-mvc – 特定便携式区域的ControllerFact
- 如何自定义Asp.net Identity 2用户名已经采取验证
- 为ASP.NET应用程序实现后台服务的最佳方法是什么
- asp.net-mvc – 将依赖项注入自定义模型绑定器并
- asp.net-mvc – ViewBag在RedirectToAction之后为
- 安装程序 – 在MVC4 RC中缺少单页应用程序模板
- asp.net – 具有html5中的文本以外的输入类型的U
- asp.net-mvc – ValidationMessage – 处理同一属
- asp.net-mvc – 实体框架4不保存我的多对多行
