如何在集线器SignalR ASP.NET Core 2.1中读取标头数据

时间:2018-08-08 14:22:14

标签: asp.net-web-api asp.net-core header signalr-hub asp.net-core-signalr

我正在尝试将 userId 传递给与signalR连接的集线器。客户端是这样建立连接的:

         connection = new HubConnectionBuilder()
            .WithUrl("http://localhost:56587/hub", options =>
            {
                options.Headers["UserId"] = loginTextBox.Text;
            })
            .AddMessagePackProtocol()
            .Build();

如何在集线器的OnConnectedAsync()方法中读取此标头?

1 个答案:

答案 0 :(得分:4)

要获取标题值作为字符串:

public override async Task OnConnectedAsync()
{
    var httpCtx = Context.GetHttpContext();
    var someHeaderValue = httpCtx.Request.Headers["UserId"].ToString();
}

注意-您可能要考虑在查询字符串中传递信息,因为并非所有传输都支持标头。