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

Blazor WASM托管应用登录时抛出AddCredentials异常求助

解决思路

1. 检查Linux主机证书的路径与权限(Digital Ocean场景)

  • 先确认证书文件存在:执行命令 ls -l /etc/ssl/private/cert.pfx,验证文件是否在指定路径
  • 调整文件权限,确保应用进程(通常是www-data用户)能读取:
    chown www-data:www-data /etc/ssl/private/cert.pfx
    chmod 600 /etc/ssl/private/cert.pfx
    
    权限设置过宽或过严都会导致证书读取失败

2. 验证证书的有效性与配置匹配

  • 用openssl工具检查证书信息,确认密码和CN是否正确:
    openssl pkcs12 -info -in /etc/ssl/private/cert.pfx -noout
    
    输入密码后查看输出的Subject字段,确认包含CN=ims.kfaheights.com,如果不匹配,要么修改appsettings里的Name值,要么重新生成对应CN的证书
  • 核对密码zahra123的大小写、特殊字符,确保和生成证书时的密码完全一致

3. Azure App Service无证书配置的处理

Azure不能直接读取文件路径的证书,有两种可行方案:

  • 测试临时方案:替换appsettings的Key配置为开发模式密钥(仅用于测试,禁止生产环境使用):
    "Key": {
      "Type": "Development"
    }
    
  • 生产正规方案:
    1. 在Azure门户的App Service「TLS/SSL设置」中上传你的cert.pfx到「私钥证书(.pfx)」
    2. 修改appsettings的Key配置,使用Azure证书存储:
      "Key": {
        "Type": "Store",
        "StoreName": "My",
        "StoreLocation": "CurrentUser",
        "Name": "CN=ims.kfaheights.com"
      }
      
    3. 给App Service启用「系统分配托管标识」,授予访问证书的权限

4. 排查IdentityServer配置与日志

  • 检查客户端配置IMS5_1.Client的IdentityServerSPA配置是否完整,确保代码中客户端的RedirectUri、PostLogoutRedirectUri等参数配置正确
  • 开启Debug级日志定位问题:在appsettings.json中添加"Microsoft.IdentityServer": "Debug"到LogLevel节点,重启应用后查看日志,确认是证书找不到、密码错误还是CN不匹配导致的失败

5. 客户端自签名证书信任问题

如果客户端浏览器不信任自签名证书,也会中断登录流程:

  • 在客户端浏览器将自签名证书导入「受信任的根证书颁发机构」
  • 开发环境中,可在Blazor WASM客户端的Program.cs中临时跳过证书验证(仅测试用):
    builder.Services.AddHttpClient("IMS5_1.Client", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
        .AddHttpMessageHandler(() => new HttpClientHandler
        {
            ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
        });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:55:17