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

ASP.NET Core Web-API认证问题排查:SimpleInjector正常,OpenIdConnect配置需调整

ASP.NET Core Web API 认证问题排查总结

刚梳理完你这个认证问题的排查过程,给你明确下结论和解决方向:

  • 首先排除SimpleInjector的嫌疑:特意检查了它的交叉连接功能,运行完全正常,不存在配置遗漏的问题,所以这个认证异常和SimpleInjector没关系。
  • 问题根源在OpenIdConnect配置上:微软已经把ASP.NET Core的认证配置逻辑从中间件迁移到了服务层,现在必须通过服务注册的方式来配置认证内容,不能再用旧的中间件写法了。

给你一个典型的配置示例(根据你的项目版本调整细节):

// 在 Program.cs 中配置服务
builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
    options.ClientId = "你的客户端ID";
    options.ClientSecret = "你的客户端密钥";
    options.Authority = "你的身份提供者地址";
    options.ResponseType = OpenIdConnectResponseType.Code;
    // 添加需要的权限范围
    options.Scope.Add("openid");
    options.Scope.Add("profile");
    // 根据实际需求添加其他配置,比如回调路径、令牌验证等
});

// 中间件管道配置(注意顺序!)
app.UseAuthentication();
app.UseAuthorization();

另外要注意:UseAuthentication()必须放在UseAuthorization()之前,而且要在路由中间件(app.UseRouting())之后、端点中间件(app.UseEndpoints())之前,确保认证逻辑能在请求到达业务端点前生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:53:22