You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.0 Blazor WebAssembly客户端HubConnection无Headers属性如何添加令牌

Blazor WebAssembly .NET Core 3.0 SignalR HubConnection添加请求头方案

.NET Core 3.0版本的SignalR客户端未直接暴露HubConnection.Headers属性,所有请求头相关配置需要在构建HubConnection实例阶段通过HubConnectionBuilder完成:

场景1:添加授权令牌(最常用)

直接使用内置的AccessTokenProvider配置即可,框架会自动将令牌注入Authorization请求头,适配SignalR服务端的授权校验规则:

// 提前注入INavigationManager、你使用的令牌存取服务(比如localStorage封装、IAccessTokenProvider等)
var hubConnection = new HubConnectionBuilder()
    .WithUrl(NavigationManager.ToAbsoluteUri("/你的Hub路由"), options =>
    {
        options.AccessTokenProvider = async () =>
        {
            // 替换为你实际的令牌获取逻辑
            var token = await localStorage.GetItemAsync<string>("你的授权令牌存储key");
            return token;
        };
    })
    .Build();

场景2:添加自定义非授权请求头

需要自定义DelegatingHandler注入自定义头,再通过HttpMessageHandlerFactory注册到配置中:

  1. 先实现自定义请求头处理类
public class CustomHeaderHandler : DelegatingHandler
{
    private readonly Dictionary<string, string> _headers;

    public CustomHeaderHandler(HttpMessageHandler innerHandler, Dictionary<string, string> headers)
    {
        InnerHandler = innerHandler;
        _headers = headers;
    }

    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        foreach (var (key, value) in _headers)
        {
            request.Headers.TryAddWithoutValidation(key, value);
        }
        return await base.SendAsync(request, cancellationToken);
    }
}
  1. 在构建HubConnection时注册处理类
var customHeaders = new Dictionary<string, string>
{
    {"自定义头key1", "自定义头value1"},
    {"自定义头key2", "自定义头value2"}
};

var hubConnection = new HubConnectionBuilder()
    .WithUrl(NavigationManager.ToAbsoluteUri("/你的Hub路由"), options =>
    {
        options.HttpMessageHandlerFactory = innerHandler => new CustomHeaderHandler(innerHandler, customHeaders);
    })
    .Build();

注意:.NET Core 3.0版本不支持HubConnection构建完成后动态修改请求头,所有头配置必须在构建阶段完成。

内容的提问来源于stack exchange,提问作者mz1378

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:18:02