静态Blazor WebAssembly默认身份验证提供商报错:页面不存在
解决Blazor WebAssembly本地测试Azure Static Web Apps身份验证的404问题
你遇到的核心问题是:本地直接运行Blazor项目时,Azure Static Web Apps的身份验证端点(/.auth/*)并不存在,这些端点由SWA托管环境提供,普通Blazor本地运行环境无法识别,因此返回404,同时因未认证触发授权失败错误。
解决步骤如下:
- 安装Azure Static Web Apps CLI,它能在本地模拟SWA运行环境,包括身份验证端点:
npm install -g @azure/static-web-apps-cli - 进入Blazor项目根目录,指定项目的wwwroot路径启动本地模拟环境(若项目无API后端,
--api-location设为空字符串):
(若包含API后端,将swa start wwwroot --api-location """"替换为API项目的启动路径,比如Api) - 启动后访问CLI输出的本地地址(通常为
http://localhost:4280),再尝试访问/.auth/login/aad,即可正常跳转到微软登录页。
补充说明:
- 直接用Visual Studio运行Blazor项目,本质是通过ASP.NET Core静态文件托管运行WASM,未集成SWA身份验证中间件,无法处理
/.auth开头的路由。 - 登录成功后,授权错误会自动消失,此时用户已完成认证,满足
DenyAnonymousAuthorizationRequirement的要求。
内容的提问来源于stack exchange,提问作者user3407039
相关产品推荐
相关产品推荐

