我有一个运行signalR 2.1.0的MVC5网站,使用Windows Authentication。因为我使用的是windows,所以登录/注销是由IIS自动处理的。有时,我会收到一个403错误,说“无法识别用户标识。在活动的SignalR连接期间,用户标识无法更改。”这种情况并不总是发生,我似乎找不到一种模式来判断它什么时候起作用,什么时候不起作用。还有没有人遇到过这种情况?
以下是视图上的代码:
<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>
任何帮助都将不胜感激。
发布于 2016-04-08 22:32:18
我想我通过向我的Hub类添加一个[Authorize]
属性修复了这个问题。虽然只过了几个小时,但我的SignalR页面表现好多了。
发布于 2014-08-28 17:12:27
对我来说起作用的是在IIS设置中禁用匿名身份验证。
发布于 2015-12-02 00:43:31
除了禁用匿名身份验证之外,我发现的另一个解决方案是添加
GlobalHost.HubPipeline.RequireAuthentication();
添加到Startup
类中的public void Configuration(IAppBuilder app)
方法。
https://stackoverflow.com/questions/25046648
复制相似问题