AspNetCoreSignalR,无法读取标头和HttpContext
创始人
2024-09-20 09:00:53
0

在SignalR的Startup中启用UseHttpContext以便访问HttpContext。

在Startup.cs的ConfigureServices方法中添加以下代码:

services.AddSignalR() .AddJsonProtocol(options => { options.PayloadSerializerOptions.PropertyNamingPolicy = null; }) .AddHubOptions(options => { options.EnableDetailedErrors = true; }); services.AddSingleton();

并且在Configure方法中添加以下代码:

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

app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapHub("/myhub") .RequireAuthorization(); });

在MyHub.cs中可以访问HttpContext,可以通过以下代码进行访问:

using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.SignalR;

namespace My.Namespace { [Authorize] public class MyHub : Hub { private readonly IHttpContextAccessor _httpContextAccessor;

    public MyHub(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

    public async Task SendMessage(string message)
    {
        var httpContext = _httpContextAccessor.HttpContext;
        var username = httpContext.User.Identity.Name;

        await Clients.All.SendAsync("ReceiveMessage", username, message);
    }
}

}

在上面的示例中,MyHub使用IHttpContextAccessor作为依赖注入进行构造,并在SendMessage方法中访问了HttpContext以获取用户信息。

相关内容

热门资讯

本来有辅助"微信小程... 微信小程序广东雀神智能插件是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户...
本然有开挂"川娱竞技... 本然有开挂"川娱竞技血战辅助器"开挂(透视)辅助插件(解说技巧有挂存在)《详细加薇136704302...
原生有开挂"拱趴游戏... 原生有开挂"拱趴游戏插件"开挂(透视)辅助安装(AI教程有挂教程);打开点击测试直接进入微信(136...
素来有辅助"陕麻圈修... 素来有辅助"陕麻圈修改工具"开挂(透视)辅助下载(2026教程有挂方法) 了解更多开挂安装加(136...
原生有开挂"impo... 原生有开挂"impoker辅助"开挂(透视)辅助软件(科技教程有挂总结)>>您好:软件加136704...
本然有开挂"吉祥填大... 本然有开挂"吉祥填大坑机制原理"开挂(透视)辅助神器(详细教程有挂秘笈)这是一款可以让一直输的玩家,...
一向有辅助"拱趴大菠... >>您好:拱趴大菠萝辅助神器下载确实是有挂的,很多玩家在这款拱趴大菠萝辅助神器下载游戏中打牌都会发现...
最初有开挂"poke... 最初有开挂"pokemmo辅助脚本"开挂(透视)辅助透视(2026新版教程有挂攻略);无需打开直接搜...
起初有辅助"顺欣茶楼... 起初有辅助"顺欣茶楼智能辅助器"开挂(透视)辅助透视(必胜教程有挂攻略)这是一款可以让一直输的玩家,...
本来有开挂"嘟嘟十三... 嘟嘟十三张透视脚本 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: ...