Blazor WASM Azure AD认证卡顿,显示"Checking Login State..."
以下是针对该问题的具体排查和解决步骤:
核对MSAL配置与Azure AD应用注册信息
确保appsettings.json中的ClientId、TenantId、RedirectUri、PostLogoutRedirectUri与Azure AD应用注册页面的配置完全一致,尤其是RedirectUri,必须精确匹配协议(http/https)、域名和端口,比如配置中的"RedirectUri": "https://localhost:5001/authentication/login-callback"要和应用注册里的重定向URI完全相同。检查浏览器弹窗权限
确认浏览器没有拦截当前站点的弹窗,将站点添加到浏览器的允许弹窗列表中;也可以用无痕窗口测试,排除插件或缓存干扰。验证Blazor认证服务配置
检查Program.cs中是否正确注册了MSAL认证服务,示例代码如下:builder.Services.AddMsalAuthentication(options => { builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication); // 根据需求添加所需的权限范围 options.ProviderOptions.DefaultAccessTokenScopes.Add("https://graph.microsoft.com/User.Read"); });同时确认
App.razor中正确引入了<RemoteAuthenticatorView />组件,且路由配置无误。排查网络与控制台错误
打开浏览器开发者工具(F12),切换到控制台和网络标签页,查看是否有400/401等请求错误,或者脚本加载失败的信息;确认网络能正常访问Azure AD的登录端点(如https://login.microsoftonline.com/)。检查登录触发逻辑
确认登录按钮的点击事件是正确调用NavigationManager.NavigateTo("authentication/login"),避免自定义逻辑阻塞登录流程;同时确保登录前没有阻塞UI的异步操作。清理缓存并重建应用
清除浏览器缓存及本地存储中的MSAL相关数据;重新构建Blazor WASM应用,清除旧编译文件残留。
内容的提问来源于stack exchange,提问作者gwruck

