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

Blazor WebAssembly修改Base URI后Azure AD认证异常求助

解决Blazor WebAssembly修改Base URI后Azure AD认证失败的问题

问题根源

修改Base URI为/app后,认证流程的回调地址、返回URL格式未同步更新,导致组件校验returnUrl时判定其与当前页面源不匹配(实际是完整URL与相对路径的冲突,或回调地址未包含Base路径)。

具体修复步骤

1. 更新应用配置文件(appsettings.json)

找到认证相关配置节点,确保RedirectUri、PostLogoutRedirectUri等路径包含/app前缀,同时确认BaseAddress(若存在)对应新的Base URI:

{
  "AzureAd": {
    "Authority": "https://login.microsoftonline.com/你的租户ID",
    "ClientId": "你的客户端ID",
    "RedirectUri": "https://localhost:7105/app/authentication/login-callback",
    "PostLogoutRedirectUri": "https://localhost:7105/app/authentication/logout-callback",
    "Scopes": "openid profile email"
  },
  "BaseAddress": "/app/"
}

2. 更新Azure AD应用注册的重定向URI

登录Azure门户,进入对应的Azure AD应用注册:

  • 切换到Authentication页面
  • 在**Single-page application (SPA)**分类下,添加新的重定向URI:https://localhost:7105/app/authentication/login-callback
  • 若不再需要原根路径的回调地址,可删除旧的https://localhost:7105/authentication/login-callback

3. 修正returnUrl的传递格式

确保触发登录时传递的returnUrl为相对路径(而非完整URL):

  • 若使用NavigationManager跳转登录,代码示例:
navigationManager.NavigateToLogin("/app");
  • 避免传递完整的https://localhost:7105/app,因为Blazor认证组件会基于当前Base URI自动处理绝对路径,完整URL会触发跨源校验错误。

4. 清理缓存

  • 清除浏览器的缓存和Cookie,避免旧的认证会话残留
  • 重启Blazor应用,确保新配置生效

验证

完成上述修改后,重新启动应用并触发登录流程,此时认证组件会正确处理returnUrl,不会再出现"Invalid return url"错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:21:03