问题
I'm trying to pass userId to hub on connection to signalR. This is how client sets up the connection:
connection = new HubConnectionBuilder()
.WithUrl("http://localhost:56587/hub", options =>
{
options.Headers["UserId"] = loginTextBox.Text;
})
.AddMessagePackProtocol()
.Build();
How can I read this header in OnConnectedAsync() method in my hub?
回答1:
To get Header Value as string:
public override async Task OnConnectedAsync()
{
var httpCtx = Context.GetHttpContext();
var someHeaderValue = httpCtx.Request.Headers["UserId"].ToString();
}
Note - You may want to consider passing information in the query string however as not all transports support headers.
来源:https://stackoverflow.com/questions/51749088/how-to-read-headers-data-in-hub-signalr-asp-net-core-2-1