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

Azure B2C应用AADB2C99002错误页无法重定向至自定义页面求助

解决Azure B2C自定义错误页(AADB2C99002)重定向问题

1. 在Azure B2C门户配置自定义错误页

  • 登录Azure门户,进入你的B2C租户。
  • 选择用户流或自定义策略,找到当前使用的用户流。
  • 切换到错误页面选项卡,启用"自定义错误页面"。
  • 添加错误码AADB2C99002,并设置对应的错误页URL为https://你的域名/Home/Error。
  • 保存配置。

2. 覆盖ASP.NET Core Identity的错误处理逻辑

在ConfigureServices方法中,修改Microsoft Identity的配置,拦截远程认证失败的默认处理:

using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Identity.Web;

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    services.AddRazorPages();

    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(options =>
        {
            Configuration.Bind("AzureAdB2C", options);
            
            // 自定义远程认证失败的处理逻辑
            options.Events.OnRemoteFailure = context =>
            {
                // 可根据错误信息细化处理,比如判断context.Failure.Message是否包含AADB2C99002
                context.Response.Redirect("/Home/Error");
                context.HandleResponse(); // 阻止系统跳转到默认错误页
                return Task.CompletedTask;
            };
        });

    services.AddAuthorization(options =>
    {
        options.FallbackPolicy = options.DefaultPolicy;
    });
}

3. 完善Home控制器的Error方法

确保HomeController中的Error方法可以接收并展示错误信息:

public class HomeController : Controller
{
    public IActionResult Error()
    {
        // 获取认证错误详情
        var authError = HttpContext.Features.Get<Microsoft.AspNetCore.Authentication.AuthenticationFailedContext>()?.Failure;
        var errorId = Request.Query["errorId"];
        
        // 将错误信息传递到视图
        ViewBag.ErrorMessage = authError?.Message;
        ViewBag.ErrorId = errorId;
        
        return View();
    }
}

4. 确认中间件顺序

你的现有Configure方法中间件顺序符合要求,保持UseAuthentication、UseAuthorization在UseRouting之后、UseEndpoints之前即可。

完成以上配置后,触发AADB2C99002错误时,系统会重定向到你自定义的/Home/Error页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37