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

Blazor WebApp客户端:无法解析IAccessTokenProvider服务求助

解决“No service for type IAccessTokenProvider has been registered”错误

1. 安装必要依赖包

  • 若为Blazor WebAssembly项目:确保已安装Microsoft.AspNetCore.Components.WebAssembly.Authentication NuGet包。
  • 若为ASP.NET Core MVC/Razor Pages或Blazor Server项目:安装IdentityModel.AspNetCore包,执行命令:
    Install-Package IdentityModel.AspNetCore
    

2. 注册AccessToken服务

在Program.cs中添加对应配置:

  • Blazor WebAssembly:通过OIDC认证注册自动引入IAccessTokenProvider:
    builder.Services.AddOidcAuthentication(options =>
    {
        builder.Configuration.Bind("DuendeDemo", options.ProviderOptions);
    });
    
  • MVC/Blazor Server:显式注册AccessToken管理服务:
    builder.Services.AddAccessTokenManagement();
    

3. 验证HttpClient与Handler配置

确保自定义CustomAuthorizationMessageHandler正确注入IAccessTokenProvider,且HttpClient注册时关联该Handler:

builder.Services.AddHttpClient("RemoteApi", client =>
{
    client.BaseAddress = new Uri("https://demo.duendesoftware.com/api/");
})
.AddHttpMessageHandler<CustomAuthorizationMessageHandler>();

补充检查

  • 确认OIDC配置中response_type包含code,并请求了API所需的scope(比如api或具体的API权限范围)。
  • Blazor Server项目需确保页面/组件已导入相关命名空间(如IdentityModel.AspNetCore.AccessTokenManagement)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:04:56