Asp.net 信号员:“;在激活的信号器连接过程中,用户身份不能更改;windows身份验证网站出错

Asp.net 信号员:“;在激活的信号器连接过程中,用户身份不能更改;windows身份验证网站出错,asp.net,asp.net-mvc,signalr,Asp.net,Asp.net Mvc,Signalr,我有一个使用Windows身份验证运行signalR 2.1.0的MVC 5网站。因为我使用的是windows身份验证登录/注销由IIS自动处理。偶尔我会收到403错误,提示“无法识别的用户标识。在活动信号器连接期间,用户标识无法更改”。这种情况并不总是发生,而且我似乎找不到一种模式来确定它何时起作用和何时不起作用。还有其他人遇到过这种情况吗 以下是视图上的代码: <script type="text/javascript"> $(document).ready(fu

我有一个使用Windows身份验证运行signalR 2.1.0的MVC 5网站。因为我使用的是windows身份验证登录/注销由IIS自动处理。偶尔我会收到403错误,提示“无法识别的用户标识。在活动信号器连接期间,用户标识无法更改”。这种情况并不总是发生,而且我似乎找不到一种模式来确定它何时起作用和何时不起作用。还有其他人遇到过这种情况吗

以下是视图上的代码:

<script type="text/javascript">
        $(document).ready(function() {
            SignalRSetup();
        });

        function SignalRSetup() {
            // Declare a proxy to reference the hub.
            var hub = $.connection.tokenRequestHub;

            // Create a function that the hub can call to broadcast messages.
            hub.client.updateFromService = function(tokenRequestID, message, success) {
                var msg = "Token Request ID {0} => {1}".format(tokenRequestID, message);
                var notyType = (success) ? 'success' : 'error';
                noty({ text: msg, type: notyType, timeout: 2000 });
                if (success) {
                    refreshGrids();
                }
            };

            $.connection.hub.start();//this is where it errors!
        }
</script>

$(文档).ready(函数(){
SignalRSetup();
});
函数SignalRSetup(){
//声明代理以引用中心。
var hub=$.connection.tokenRequestHub;
//创建一个中心可以调用以广播消息的函数。
hub.client.updateFromService=函数(令牌请求ID、消息、成功){
var msg=“令牌请求ID{0}=>{1}”。格式(令牌请求ID,消息);
var notyType=(成功)?“成功”:“错误”;
noty({text:msg,type:notyType,timeout:2000});
如果(成功){
刷新网格();
}
};
$.connection.hub.start();//这就是它出错的地方!
}

任何帮助都将不胜感激。

对我有效的方法是在IIS设置中禁用匿名身份验证。

除了禁用匿名身份验证之外,我找到的另一个解决方案是添加

GlobalHost.HubPipeline.RequireAuthentication();

Startup
类中的
public void Configuration(IAppBuilder app)
方法。

我想我通过向我的Hub类添加
[Authorize]
属性解决了这个问题。虽然只花了几个小时,但我的Signal-powered页面的表现要好得多。

我遇到了同样的问题,你找到了解决方案吗?我还没有找到解决方案(公平地说,我没有花超过一个小时的时间)。这一问题似乎更多地发生在回发上。因此,我将模型发布到控制器(例如)以保存用户,然后重定向到用户列表。用户列表将出现此问题。如果我只是导航到用户列表,那么就可以了。如果你发现什么,请告诉我!谢谢你!几个小时来一直在试图解决这个问题。只需要几行代码,很好![Microsoft.AspNet.signal.Authorize]可用于为每个集线器或方法配置此选项。此选项已为我修复。谢谢