asp.net-mvc - SignalR Invoke() 方法“未经授权”错误
问题描述
我已将 SignalR 添加到我们现有的 asp.net Web 应用程序中,一切正常。我已将此 Web 应用程序发布到 Azure,现在在调用方法上出现未经授权的错误。
我在 Azure 上启用了 Web 套接字和 ARR 关联。我没有使用 Authorize 属性。我是否需要向我的应用程序添加其他内容来验证 Web 应用程序或用户?
状态码:401,ReasonPhrase:'未授权',版本:1.1,内容:System.Net.Http.StreamContent,标头:{ 日期:Set-Cookie:ARRAffinity=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;Path=/;HttpOnly;Domain=MyAppx.azurewebsites.net WWW-Authenticate: Bearer realm="MyAppx.azurewebsites.net" authorization_uri="https://login.windows.net/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/oauth2/authorize" resource_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" X-Powered-By: ASP.NET Content-Length :58 内容类型:文本/html }
解决方案
因为在 asp.net 中对 SignalR 的支持有限,您必须使用一些 .net 核心库。您可以利用 var context = GlobalHost.ConnectionManager.GetHubContext() 而不是在集线器连接上使用 invoke() 方法会省去很多pluming代码。使用 GlobalHost.ConnectionManager.GetHubContext 也解决了授权问题。
推荐阅读
- uipath - 将流程发布到 UiPath Orchastrator 后,错误 UiElement 不再有效
- go - 您能否以编程方式确定从接收者沿 go 通道传递的值的发送者?
- python - Combine arrays and shuffling two arrays in order
- excel - Open the Word file in the active Workbook directory
- django - Handle Periodic Tasks Django and Celery
- python - How to add multiple entry to multiple model which have one to one relationship in django?
- c# - C# winform app - generate numbers and add to list, then plot to chart
- xml - 在 WSO ESB 中处理空的 xml 后端响应
- reactjs - 渲染方法组件错误 - 无效的挂钩调用。Hooks 只能在函数组件的主体内部调用
- node.js - 使用 axios 上传文件时将 req.body 和 req.file 设为空