Asp.net core .Net Core 5.0迁移的信号器问题,app.UseSignalR->;app.UseEndpoints

Asp.net core .Net Core 5.0迁移的信号器问题,app.UseSignalR->;app.UseEndpoints,asp.net-core,authentication,.net-core,signalr,http-status-code-401,Asp.net Core,Authentication,.net Core,Signalr,Http Status Code 401,我已经从NetCore3.1迁移到了5.0,但在更新后我无法让signalR连接。每当它尝试连接到集线器时,我都会收到一个401错误 错误日志 2020-12-17 15:47:07.351 -08:00 [INF] AuthenticationScheme: Identity.Application was challenged. 2020-12-17 15:47:07.351 -08:00 [INF] Request finished HTTP/2 POST https://blah.bl

我已经从NetCore3.1迁移到了5.0,但在更新后我无法让signalR连接。每当它尝试连接到集线器时,我都会收到一个401错误

错误日志

2020-12-17 15:47:07.351 -08:00 [INF] AuthenticationScheme: Identity.Application was challenged.
2020-12-17 15:47:07.351 -08:00 [INF] Request finished HTTP/2 POST 
https://blah.blah.org:5001/range/negotiate?negotiateVersion=1 text/plain;charset=UTF-8 0 - 401 0 
- 4.4068ms
2020-12-17 15:47:12.355 -08:00 [INF] Request starting HTTP/2 POST 
https://blah.blah.org:5001/range/negotiate?negotiateVersion=1 text/plain;charset=UTF-8 0
2020-12-17 15:47:12.355 -08:00 [INF] Authorization failed. These requirements were not met:
DenyAnonymousAuthorizationRequirement: Requires an authenticated user.
在Startup.cs中配置功能项

app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseCookiePolicy();  
app.UseStaticFiles();
app.UseSession();
app.UseEndpoints(endpoints =>
{
      endpoints.MapHub<Hubs.RangeHub>("/range");
});
集线器正在使用[Authorize]属性

[Authorize]
public class RangeHub : Hub
当我运行应用程序时,visual studio中的调试输出中也出现了大量令人不安的异常,这些异常可能是导致该问题的原因:

Exception thrown: 'System.IO.IOException' in System.Net.Security.dll
Exception thrown: 'System.IO.IOException' in System.Private.CoreLib.dll
Exception thrown: 'System.IO.IOException' in System.Private.CoreLib.dll
Exception thrown: 'System.IO.IOException' in System.Private.CoreLib.dll
Exception thrown: 'System.Net.Sockets.SocketException' in 
Exception thrown: 'System.Net.Sockets.SocketException' in System.Private.CoreLib.dll
Exception thrown: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' in Microsoft.CSharp.dll
Exception thrown: 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' in Microsoft.CSharp.dll
Exception thrown: 'System.Net.Sockets.SocketException' in 
Exception thrown: 'System.Net.Sockets.SocketException' in System.Private.CoreLib.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.AspNetCore.Routing.dll
Exception thrown: 'System.InvalidOperationException' in System.Private.CoreLib.dll
Exception thrown: 'System.InvalidOperationException' in System.Private.CoreLib.dll
Exception thrown: 'System.InvalidOperationException' in System.Private.CoreLib.dll
还有其他人遇到这个问题吗?我花了几天时间尝试不同的东西,但除了回到核心3之外,我不知道还能尝试什么

--更新——在玩了几天之后,我尝试恢复到core 3.1,但将app.UseSignalR更改为5.0强制执行的app.UseEndpoints。看来这种变化是我遇到的主要问题。它带来了一些我不熟悉的授权更改,并且找不到有关以下内容的任何信息:

app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
    endpoints.MapHub<Hubs.RangeHub>("/range");
});
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(端点=>
{
endpoints.MapHub(“/range”);
});

从app.usesignator到这些行的转换。这仅用于管理用户会话。有人能给我指出正确的方向吗?

这是糟糕的一周。问题是app.UseAuthorization()的错误;和 app.UseAuthentication();我们的顺序不对。他们需要看起来像这样:

app.UseAuthentication();
app.UseAuthorization();

解决方案如此简单,令人沮丧。

您如何分配
loginToken
?后端无法使tocken有效。@user1986237我不再尝试将jwt用于用户会话。我试图弄明白为什么信号器的标准cookieauth在5.0中停止工作。我认为这与切换到端点有关,我只是不知道为什么。
app.UseAuthentication();
app.UseAuthorization();