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

如何在TokenAcquirerFactory中添加用户机密作为配置源?

如何在TokenAcquirerFactory中添加用户机密作为配置源?

嘿,你找的路子完全对!通过继承TokenAcquirerFactory并重写DefineConfiguration方法来扩展配置源,这个方法本身就是为这类自定义配置场景设计的,你的实现思路非常靠谱。

下面把完整的实现和使用方式理清楚:

首先定义自定义工厂类,在重写的方法里加入用户机密配置源:

using System.Reflection;
using Microsoft.Identity.Web;

internal class ConfigurableTokenAcquisitionFactory : TokenAcquirerFactory
{
    protected override string DefineConfiguration(IConfigurationBuilder builder)
    {
        // 获取程序集,用于关联对应的用户机密文件
        var targetAssembly = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly();
        builder.AddUserSecrets(targetAssembly);
        
        // 调用基类方法完成默认配置的加载流程
        return base.DefineConfiguration(builder);
    }
}

之后就可以通过GetDefaultInstance<T>方法获取这个自定义工厂的实例,正常使用即可:

var tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance<ConfigurableTokenAcquisitionFactory>();
tokenAcquirerFactory.Build();

// 后续按需获取TokenAcquirer实例
var tokenAcquirer = tokenAcquirerFactory.GetTokenAcquirer();

这里提个小细节:Assembly.GetEntryAssembly()会取程序的入口程序集,如果你的代码是在类库项目中运行,它可能返回null,这时候用Assembly.GetExecutingAssembly()兜底,就能确保加载到当前代码所在项目的用户机密了。

备注:内容来源于stack exchange,提问作者mark_h

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 07:34:30