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

Blazor WebAssembly托管模式下AddSigningCredentials空引用异常如何解决

问题根源

ASP.NET Core 5.0 自带的IdentityServer集成扩展AddApiAuthorization默认会优先从配置文件读取IdentityServer:Key节点加载签名凭证,如果你删除了该节点或者节点配置无效,扩展内部解析时会直接抛出空引用异常,且不会读取你手动在代码中添加的签名凭证。

解决方法

步骤1:修改配置文件

在对应环境的配置文件(如appsettings.Development.json)中保留IdentityServer的Key配置,将Type设置为Manual,告诉扩展不要自动从配置加载签名凭证:

"IdentityServer": {
  "Key": {
    "Type": "Manual"
  }
}

步骤2:调整代码配置

在Startup.cs的ConfigureServices方法中按顺序配置IdentityServer即可:

开发环境使用临时签名密钥

services.AddIdentityServer()
    .AddApiAuthorization<ApplicationUser, ApplicationDbContext>()
    .AddDeveloperSigningCredential();

生产环境使用自定义pfx证书

// 提前加载证书,确保证书路径有效、密码正确
var certBytes = File.ReadAllBytes(@"C:\Test\test.pfx");
var certificate = new X509Certificate2(certBytes, "SuperSecurePassword123!@");

services.AddIdentityServer()
    .AddApiAuthorization<ApplicationUser, ApplicationDbContext>()
    .AddSigningCredential(certificate);

配置完成后启动项目即可正常运行,代码中添加的签名凭证会正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:48:03