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

.NET Identity中AddIdentityCore搭配默认令牌提供者报错问题咨询

AddIdentityCore适配默认令牌提供者问题解答

核心差异

  • AddIdentity:是完整的身份认证解决方案,自动注册了全套依赖服务,包括IDataProtectionProvider、Cookie认证中间件、用户/角色管理器、令牌提供者所需的基础组件等,开箱即用支持令牌功能。
  • AddIdentityCore:仅提供最核心的用户管理能力(用户管理器、用户存储接口),属于轻量级模块,不会自动注册DataProtection、外部通知(邮件/短信)等外围服务,而默认令牌提供者(如DataProtectorTokenProvider)依赖这些未注册的服务,导致构造失败。

适配方法

要让AddIdentityCore兼容AddDefaultTokenProviders,需要手动补充缺失的依赖服务:

  1. 注册DataProtection服务
    DataProtectorTokenProvider依赖IDataProtectionProvider生成加密令牌,必须先注册:

    services.AddDataProtection();
    

    若为非Web应用(如控制台),需额外配置密钥存储位置,比如:

    services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(@"C:\Keys"));
    
  2. 完整的服务注册示例
    在调用AddDefaultTokenProviders前,确保核心用户服务+依赖项都已注册:

    services.AddIdentityCore<ApplicationUser>(options =>
    {
        // 配置用户选项(密码、锁定等)
    })
    .AddUserStore<YourUserStoreImplementation>() // 替换为你的用户存储实现
    .AddDataProtectionTokenProvider<ApplicationUser>()
    .AddDefaultTokenProviders();
    
  3. 额外注意事项
    若要使用邮件/短信令牌提供者,还需手动注册对应的发送服务:

    • 邮件令牌:注册IEmailSender实现
    • 短信令牌:注册ISmsSender实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:46:00