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

如何为ITokenAcquisition配置依赖注入?遇访问权限错误求助

解决ITokenAcquisition依赖注入的问题

你遇到的错误是因为TokenAcquisition是Microsoft.Identity.Web库中的内部类,无法直接在你的代码里将它作为实现类注册到依赖注入容器。

正确的做法是不用手动注册ITokenAcquisition,而是借助Microsoft.IdentityWeb提供的扩展方法,这些方法会自动完成所需服务的注册,步骤如下:

  1. 确保项目已安装Microsoft.Identity.Web NuGet包(未安装的话通过NuGet包管理器或CLI安装)。

  2. 在Program.cs中使用对应扩展方法配置身份验证,同时自动注册ITokenAcquisition:

    • 如果是API项目,用以下代码:
      var builder = WebApplication.CreateBuilder(args);
      
      builder.Services.AddControllers();
      
      // 配置Identity Web API认证,自动注册ITokenAcquisition
      builder.Services.AddMicrosoftIdentityWebApiAuthentication(builder.Configuration)
          .AddTokenAcquisition();
      
      var app = builder.Build();
      
      app.UseAuthentication();
      app.UseAuthorization();
      
      app.MapControllers();
      
      app.Run();
      
    • 如果是Web App(MVC/Razor Pages)项目,用以下代码:
      var builder = WebApplication.CreateBuilder(args);
      
      builder.Services.AddControllersWithViews();
      
      // 配置Identity Web App认证,自动注册ITokenAcquisition
      builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration)
          .AddTokenAcquisition();
      
      var app = builder.Build();
      
      app.UseHttpsRedirection();
      app.UseStaticFiles();
      
      app.UseRouting();
      
      app.UseAuthentication();
      app.UseAuthorization();
      
      app.MapControllerRoute(
          name: "default",
          pattern: "{controller=Home}/{action=Index}/{id?}");
      
      app.Run();
      

完成以上配置后,你的控制器代码无需修改,就能正常注入并使用ITokenAcquisition获取用户令牌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:19