SignalR Invoke()方法“未经授权”错误

时间:2019-12-19 19:56:06

标签: asp.net-mvc signalr signalr-hub signalr.client

我已经将SignalR添加到我们现有的asp.net Web应用程序中,并且一切正常。我已将此Web应用程序发布到Azure,现在在invoke方法上出现未经授权的错误。
我已经在Azure上启用了Web套接字和ARR关联。 我没有使用Authorize属性。 我是否需要向应用程序中添加其他内容以对Web应用程序或用户进行身份验证?

状态码:401,原因短语:“未经授权”,版本:1.1,内容:System.Net.Http.StreamContent,标头: {   日期:   设置Cookie:ARRAffinity = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; Path = /; HttpOnly; Domain = MyAppx.azurewebsites.net   WWW验证:Bearer realm =“ MyAppx.azurewebsites.net” authorization_uri =“ https://login.windows.net/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/oauth2/authorize” resource_id =“ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”   X-Powered-by:ASP.NET   内容长度:58   内容类型:text / html }

1 个答案:

答案 0 :(得分:0)

由于对asp.net中SignalR的支持是有限的,因此必须使用某些.net核心库。可以在var context = GlobalHost.ConnectionManager.GetHubContext中使用,而不是在集线器连接上使用invoke()方法()将消除大量的代码。使用GlobalHost.ConnectionManager.GetHubContext也可以解决授权问题。