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

MVC集成Azure AD B2C认证遇ERR_SSL_PROTOCOL_ERROR问题求助

解决MVC集成Azure AD B2C登录后出现ERR_SSL_PROTOCOL_ERROR的问题

核心原因

你遇到的ERR_SSL_PROTOCOL_ERROR是因为本地MVC应用未启用SSL,但Azure AD B2C尝试跳转到配置的HTTPS重定向地址https://localhost:53843/,本地服务无法处理HTTPS请求导致的。之前Angular和其他.NET项目能正常运行,大概率是因为那些项目使用了HTTP的重定向URI,或者项目默认启用了SSL。

具体解决步骤

  • 启用本地MVC项目的SSL

    1. 在Visual Studio中右键点击项目 → 选择「属性」→ 切换到「调试」标签页。
    2. 勾选「启用SSL」选项,此时会生成一个HTTPS的本地地址(比如https://localhost:53843/)。
    3. 确保这个地址和Web.config中ida:RedirectUri的配置完全一致,包括端口号。
    4. 若手动配置IIS Express,需确认项目的.vs/config/applicationhost.config文件中,对应站点的绑定已添加正确的SSL证书和端口。
  • 统一重定向URI配置

    1. 登录Azure AD B2C门户,找到对应的应用注册。
    2. 在「重定向URI」列表中,确保同时配置了和Web.config一致的HTTPS地址(若要测试HTTP,也可添加http://localhost:53843/,但生产环境必须用HTTPS)。
    3. 保存配置后,等待5-10分钟让配置生效。
  • 调整认证中间件设置(针对OWIN配置)

    1. 打开Startup.cs文件,检查OpenIdConnect中间件的配置:
      • 确保RedirectUri参数直接引用Web.config中的配置值,比如:
        RedirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"]
        
      • 确认CallbackPath设置为默认的/signin-oidc(这个路径是认证中间件自动处理的,无需手动添加控制器)。
      • 若有RequireHttpsMetadata属性,确保设置为true(生产环境必须,本地开发可临时设为false但不推荐)。
  • 确保登录后跳转至Home/Index

    1. 在Home控制器的Index方法上添加[Authorize]属性,强制用户认证后才能访问。
    2. 检查路由配置(RouteConfig.cs),确保默认路由指向Home/Index:
      routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
      );
      
    3. 认证成功后,中间件会自动跳转到用户原本请求的页面,若用户直接访问登录入口,会跳转至默认路由对应的Home/Index。

额外测试建议

如果暂时无法启用SSL,可临时将Web.config中的ida:RedirectUri改为http://localhost:53843/,同时在Azure AD B2C门户添加该HTTP地址作为重定向URI,重启应用后测试。但注意此方式仅适用于本地开发,生产环境必须使用HTTPS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:07:37