0

我的项目实现 SignalR 时遇到以下问题。我的用户通过 ASP 常规身份验证进行身份验证。(基于 AD 基础)

达到身份验证超时时,javascript 和集线器之间的连接失败。我想知道处理这个问题的好方法是什么。(事件(哪一个?)+重新连接?)

非常感谢您提前

*数据: *

在 chrome 调试中:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://mySite:81/Project/signalr/send?transport=serverSentEvents&con...

IIS 日志:

当身份验证仍处于活动状态时:

2013-04-23 10:27:07 IP POST /Project/signalr/send transport=serverSentEvents&connectionToken=RRBKQRnC_KsWBfxuGTXbfsvipbDWWFRVSodpXmW2-CS-GniKtxx69WbAJXURCLns_CfNJDmSZUI3v9LLslqWYy5pvzA1lzCcl9nWx1ufAOB69l8CFTPySNZWzJrVs-VKIb34vjHq5qi8qfms-LFg6j_zwO9WA4vguRu1LdPxY2I2p09v6X_PE7tfCXnIS4vS0 81 thomas.dupuis MYIP Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.22+(KHTML,+like+Gecko)+Chrome/25.0.1364.160+Safari/537.22 200 0 0 2252

当身份验证不再处于活动状态时:

2013-04-23 10:28:39 IP POST /Project/signalr/send transport=serverSentEvents&connectionToken=RRBKQRnC_KsWBfxuGTXbfsvipbDWWFRVSodpXmW2-CS-GniKtxx69WbAJXURCLns_CfNJDmSZUI3v9LLslqWYy5pvzA1lzCcl9nWx1ufAOB69l8CFTPySNZWzJrVs-VKIb34vjHq5qi8qfms-LFg6j_zwO9WA4vguRu1LdPxY2I2p09v6X_PE7tfCXnIS4vS0 81 - MYIP Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.22+(KHTML,+like+Gecko)+Chrome/25.0.1364.160+Safari/537.22 500 0 0 209

我们可以看到第一个日志包含我的用户 ID (thomas.dupuis),而不是第二个。(第一个获得 200 http 而第二个获得 500 错误内部服务器)

4

1 回答 1

1

如果您正在超时验证,您需要让客户端重新启动,也就是调用 $.connection.hub.stop(),然后调用 $.connection.hub.start()。当 SignalR 连接处于活动状态时,无法修改身份验证凭据。

于 2013-04-23T18:04:12.090 回答