ASP.NET Core 5接入OpenIdConnect后根路由返回空白页问题排查
问题根源
你的Azure AD B2C配置里将SignedOutCallbackPath设置为了/,和根路由完全冲突。OpenIdConnect认证中间件会优先匹配该回调路径,拦截根路径请求处理登出逻辑,无登出上下文时就会直接返回空白响应,不会走到后续的路由匹配环节。
修复步骤
- 修改
appsettings.json中的SignedOutCallbackPath为不与业务路由冲突的专用回调路径,比如标准的/signout-callback-oidc:
"AzureAdB2C": { "Instance": "https://abc.b2clogin.com", "Domain": "abc.onmicrosoft.com", "ClientId": "62...f1", "TenantId": "7e...ae", "SignUpSignInPolicyId": "B2C_1_SUSI", "SignedOutCallbackPath": "/signout-callback-oidc" },
保持中间件顺序不变,你原本的
UseRouting→UseAuthentication→UseAuthorization→UseEndpoints顺序是正确的,不要将UseEndpoints移到认证中间件之前,否则会出现登录循环问题。如果需要实现登出后跳转回首页的需求,不要修改
SignedOutCallbackPath,额外配置SignedOutRedirectUri即可:
services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme, options => { // 登出完成后跳转到根路径 options.SignedOutRedirectUri = "/"; });
内容的提问来源于stack exchange,提问作者MG123
相关产品推荐
相关产品推荐

