因此,当我连接到WebSocket时,我的Blazor应用程序遇到了这种奇怪的行为.当我在集线器的顶部添加授权属性时,我的应用程序不想连接到wss.然而,当我try 发送请求时,它仍然按预期工作(我猜它是通过http?).此外,当我判断我的网络选项卡时,它没有显示401错误或任何其他内容,它的状态只是显示完成.我在这里做错了什么?

这是我收到的错误消息 https://i.stack.imgur.com/BLyZM.png

这是我的网络选项卡的屏幕截图 https://i.stack.imgur.com/b5c3v.png

这就是我目前实施集线器的方式

using Duende.IdentityServer.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
using System.Security.Claims;

namespace BagiBagiDev.Server.Hubs
{
    [Authorize]
    public class PaymentHub : Hub
    {
        public async Task TestMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMessage", user, message);
        }
        public override async Task OnConnectedAsync()
        {
            var username = Context.User.FindFirst(c => c.Type == ClaimTypes.Name).Value;
            if (!string.IsNullOrEmpty(username))
            {
                await Groups.AddToGroupAsync(Context.ConnectionId, username);
            }
            await base.OnConnectedAsync();
        }
    }
}

我试着在互联网上搜索,很多人都指出了vscode的一个错误,但我认为这个问题应该已经在我的当前版本(v17.6)中得到了修复,所以我不确定发生了什么.

推荐答案

所有的荣誉都归于这里的this个人!

结果,我错过了一个中间件来判断何时在中间件中接收到了accesToken.

builder.Services.TryAddEnumerable(
            descriptor: ServiceDescriptor.Singleton<
                IPostConfigureOptions<JwtBearerOptions>,
                ConfigureJwtBearerOptions>());

现在,它的作用就像一种护身符.再次感谢你的帮助,布莱恩!

Csharp相关问答推荐

PredicateBuilder不是循环工作,而是手动工作

当打印一行x个项目时,如何打印最后一行项目?

如何使用C#中的图形API更新用户配置文件图像

ASP.NET MVC中创建视图的过滤器

System.Text.Json数据化的C#类映射

mocking对象的引发事件并作为用于调用方法的参数对象传递到那里

无法通过绑定禁用条目

如何在没有前缀和可选后缀的情况下获取Razor Page Handler方法名称?

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

Blazor Web App WASM的两个独立项目令人困惑

使用Entity Framework6在对象中填充列表会导致列表大多为空

在字符串C#之前获取数字

MSTest--将消息直接写入StdOut和使用TestContext有什么不同?

如何让两个.NET版本不兼容的项目对话?

用C#从XML内部元素中获取特定值

在C#中有没有办法减少大型数组中新字符串的分配?

.NET Google Workspace API获取错误CS0266

C#中类库项目的源代码生成器

是否可以从IQueryable T中获取一个IdentyEntry T>

如何根据分割文本的块数来计算文本的大小?