Asp.net-Web-Api

如何在集線器 SignalR ASP.NET Core 2.1 中讀取標頭數據

  • August 8, 2018

我正在嘗試將userId傳遞給集線器以連接到 signalR。這是客戶端設置連接的方式:

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

如何在集線器的 OnConnectedAsync() 方法中讀取此標頭?

將標題值作為字元串獲取:

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

注意- 您可能需要考慮在查詢字元串中傳遞資訊,但並非所有傳輸都支持標頭。

引用自:https://stackoverflow.com/questions/51749088