signalR在验证时给出403

时间:2015-01-09 14:47:03

标签: azure signalr asp.net-mvc-5.2

我有一个使用signalR和Forms身份验证并发布到Azure服务的MVC应用程序 - 与MVC4,SignalR 1.1.2一起正常工作 我们升级到VS 2013以及最新和最好的所有软件包,MVC 5.5.2和signalR 2.1.2,并通过OWIN对SignalR进行了必要的更改

现在,当我没有登录时,signalR按预期工作并使用WebSockets连接。但是当我登录并刷新同一页面时,signalR不再有效。

通过websockets连接时出现403错误

然后尝试将服务器发送的事件作为(取消)

返回

然后Long Polling也失败了403 - Forbidden错误

请注意,在本地运行时它工作正常,它只是在发布到azure服务时我遇到了这个问题

我必须做一些简单的事情,我很想念。有人做过类似的升级吗?

它是一款大型应用程序,因此无法真正共享多少代码,但实际上我所做的只是连接到signalR hub

    <script type="text/javascript" src="/signalr/hubs"></script>
    <script type="text/javascript">
        $(function () {
            // SignalR - Initialise
            var dashboardHub = $.connection.miHub;

            // start signalR hub - this will connect the user
            $.connection.hub.start();

        });
    </script>

和集线器类

public class MiHub : Hub
{
    public override Task OnConnected()
    {
        ConnectUser();
        return null;
    }

 ....
}

当我未登录我的应用时,开发工具会显示以下内容:

wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...         
response 101

wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...
response 200
{ "Response": "started" }

当我登录并在同一页面上点击F5时,我得到了

wss://myservice.cloudapp.net/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=...
response 403

0 个答案:

没有答案