问题可能是由于授权配置的问题导致的。在ASP.NET Core SignalR中,需要进行授权配置才能在hub中使用[Authorized]标记。以下是可能的解决方法:
services.AddAuthorization();
services.AddAuthentication()
.AddJwtBearer(options =>
{
// 配置身份验证选项
});
services.AddAuthorization(options =>
{
options.AddPolicy("MyPolicy", policy =>
{
// 添加所需的授权规则
});
});
[Authorize(Policy = "MyPolicy")]
public class MyHub : Hub
{
// hub的代码
}
const connection = new signalR.HubConnectionBuilder()
.withUrl("/myhub", {
accessTokenFactory: () => {
// 返回有效的访问令牌
}
})
.build();
public override async Task OnDisconnectedAsync(Exception exception)
{
// 在客户端断开连接时执行的代码
await base.OnDisconnectedAsync(exception);
}
希望这些解决方法能帮助到你解决问题!如果仍然有问题,请提供更多的代码和错误信息,以便我们更好地帮助你。