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

.NET 6 Blazor部署Azure后点击登录触发DenyAnonymous授权失败,本地正常

.NET 6 Blazor部署Azure后登录触发DenyAnonymousAuthorizationRequirement错误的解决思路

以下是针对该问题的排查和解决方向:

  • 检查Azure App Service内置身份验证(Easy Auth)冲突
    Azure App Service默认启用的Easy Auth常和应用内的IdentityServerJwt配置冲突。进入Azure门户你的App Service,找到「身份验证」选项,查看是否启用了非应用自身配置的身份提供者,若有则暂时禁用后重新部署测试。

  • 修正JWT配置的Authority地址
    本地运行时Authority可能指向localhost,部署到Azure后必须更新为IdentityServer的公网HTTPS地址。检查appsettings.json或Azure应用配置中的Authority值,确保为正确的公网地址,比如"https://your-identity-server.azurewebsites.net",同时在代码中显式指定配置:

    builder.Services.AddAuthentication()
        .AddIdentityServerJwt(options =>
        {
            options.Authority = builder.Configuration["IdentityServer:Authority"];
            options.RequireHttpsMetadata = true; // Azure环境必须开启HTTPS验证
        });
    
  • 确认登录页面未被错误授权
    检查登录页面(如Login.razor)是否意外添加了@attribute [Authorize]属性,或者路由配置中对登录路径设置了授权要求。未登录用户访问登录页面时若被要求授权,会直接触发该错误。

  • 强制Azure App Service使用HTTPS
    IdentityServerJwt默认要求HTTPS元数据,进入Azure门户App Service的「TLS/SSL设置」,开启「HTTPS 仅」选项,确保所有请求通过HTTPS访问,避免元数据请求失败导致的验证问题。

  • 验证中间件顺序是否正确
    确保UseAuthentication()和UseAuthorization()的调用顺序正确,必须先执行认证再执行授权,且放在路由中间件之前:

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthentication(); // 先执行认证
    app.UseAuthorization();  // 再执行授权
    app.MapBlazorHub();
    app.MapFallbackToPage("/_Host");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:46:00