Azure托管Blazor静态Web App重定向与登出重定向URI移动端失效问题
问题解决步骤
1. 修复移动端跳转重复https前缀问题
- 不要在appsettings.json中硬编码完整的重定向全路径,将RedirectUri、PostLogoutRedirectUri修改为相对路径即可,MSAL会自动拼接当前站点的基地址,避免重复拼接协议头:
{ "AzureAdB2C": { "Authority": "https://{domain}.b2clogin.com/{domain}.onmicrosoft.com/B2C_1_signupsignin1", "ClientId": "{Application ID GUID}", "RedirectUri": "/authentication/login-callback", "PostLogoutRedirectUri": "/authentication/logout-callback", "ValidateAuthority": false } }
- 无需再手动切换本地/生产配置的后缀,相对路径会自动适配两种环境。
2. 修复PC端登出404、移动端登录404问题
- 新增静态Web App路由回退配置,在Blazor Client项目的
wwwroot目录下创建staticwebapp.config.json文件,内容如下:
{ "navigationFallback": { "rewrite": "/index.html", "exclude": ["/api/*", "/*.{css,js,ico,png,jpg,gif,json}"] } }
Blazor WASM是单页应用,所有子路由都需要回退到index.html由前端路由接管,否则直接访问/login-callback、/logout-callback这类路径时,Azure静态Web App会认为是请求静态资源,找不到就返回404。
- 检查Azure B2C应用注册的「身份验证」配置,确认已经添加生产环境的登录、登出重定向全路径,路径大小写与配置完全一致。
可选优化
- 移除Program.cs中手动添加的
openidscope,MSAL认证默认会自动包含该权限,重复添加不会导致故障但属于冗余配置。
内容的提问来源于stack exchange,提问作者davispg
相关产品推荐
相关产品推荐

