ASP.NET Core 7 MVC微软账户认证抛异常,VS2022显示Access violation
以下是几个最可能遗漏的配置点,按优先级排查:
检查Azure AD应用注册的重定向URI
必须保证Azure门户中应用注册的重定向URI和项目配置完全匹配,本地开发常用格式为https://localhost:<你的端口号>/signin-microsoft,注意HTTPS协议、端口号都不能错,多一个空格或者符号都会导致认证失败。验证客户端ID与密钥的正确性
核对appsettings.json里的Microsoft:ClientId和Microsoft:ClientSecret,确保和Azure应用注册页面的对应值完全一致。密钥要注意没有过期,复制时不要带多余的空格或换行。确认API权限已配置并授权
在Azure应用注册的「API权限」页面,添加必要的权限(比如基础的User.Read),并且点击「授予管理员同意」按钮。如果是面向企业用户的应用,必须完成这一步;个人用户场景也建议提前授权,避免流程中出现权限不足的问题。检查认证中间件的配置顺序
在Program.cs中,AddMicrosoftAccount要在AddAuthentication之后注册,且UseAuthentication必须放在UseAuthorization之前执行,顺序错误会导致认证流程无法正常触发。示例代码:builder.Services.AddAuthentication() .AddMicrosoftAccount(options => { options.ClientId = builder.Configuration["Microsoft:ClientId"]; options.ClientSecret = builder.Configuration["Microsoft:ClientSecret"]; }); // 注意中间件顺序 app.UseAuthentication(); app.UseAuthorization();确保启用HTTPS
微软账户认证强制要求HTTPS连接,本地开发时检查Visual Studio是否启用了HTTPS,或者在launchSettings.json中确认HTTPS端口配置正确,避免因HTTP协议导致的访问被拒绝。
内容的提问来源于stack exchange,提问作者Adam

