.NET6客户端注销后无法重定向至signin-oidc页面的技术求助
解决注销后无法重定向至signin-oidc页面的问题
以下是针对你的配置和环境的排查与解决步骤:
1. 确保服务端客户端配置包含目标重定向URI
不管是Identity Server还是ADFS,都需要在客户端注册信息中,将http://localhost:6269/signin-oidc添加到注销重定向URI列表(PostLogoutRedirectUris)中。如果服务端未配置该地址,客户端的注销重定向请求会被直接拒绝。
以.NET6 Identity Server为例,客户端配置代码需包含:
new Client { ClientId = "Test", // 其他必要配置(如秘钥、授权类型等) PostLogoutRedirectUris = { "http://localhost:6269/signin-oidc" } }
2. 修正客户端参数命名格式
多数OIDC客户端库(如oidc-client-js)遵循OIDC标准的下划线分隔参数名,而非驼峰式。你当前配置中的postLogoutRedirectUri和redirectUrl可能不符合库的要求,需改为标准命名:
config: { authority: 'https://localhost:6001', clientId: 'Test', post_logout_redirect_uri: 'http://localhost:6269/signin-oidc', redirect_uri: 'http://localhost:6269/signin-oidc', scope: 'openid profile', responseType: 'code', autoUserInfo: true, silentRenew: true, useRefreshToken: true, logLevel: LogLevel.Debug },
3. 验证注销请求的参数完整性
开启LogLevel.Debug后,查看客户端发送的注销请求(对应OIDC的end_session_endpoint)是否携带了正确的post_logout_redirect_uri参数。如果该参数缺失,说明客户端配置未生效,需核对所用OIDC库的官方文档,确认参数名和配置方式是否正确。
4. 适配ADFS的特殊配置
若使用ADFS作为认证提供者,额外检查:
- 在ADFS的客户端信任配置中,已添加
http://localhost:6269/signin-oidc作为注销重定向URI。 - ADFS已启用OIDC注销流程,且安全策略未拦截该重定向地址。
5. 确认注销调用逻辑正确
确保客户端发起注销时,未手动覆盖重定向地址。以oidc-client-js为例,正确的注销调用应为:
userManager.signoutRedirect();
若需显式指定重定向地址,需使用标准参数名:
userManager.signoutRedirect({ post_logout_redirect_uri: 'http://localhost:6269/signin-oidc' });
内容的提问来源于stack exchange,提问作者sanjay
相关产品推荐
相关产品推荐

