【问题标题】:CORS problem with B2C and Azure App ServiceB2C 和 Azure 应用服务的 CORS 问题
【发布时间】:2019-06-30 22:06:28
【问题描述】:

我通过在控制器中使用 AddCors 和 EnableCors 在我的 ASP.NET/Angular 应用程序中启用了 CORS。我的应用程序正在与 AD B2C 页面进行通信。构建后,我在控制台中出现此错误:

在 'https://XXX.b2clogin.com/ 访问 XMLHttpRequest(重定向 来自'https://XXX.azurewebsites.net/User/Info') 来自原点 'https://XXX.azurewebsites.net' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。

Startup.cs:

            services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

控制器:

[EnableCors("CorsPolicy")]
[Authorize]
public class UserEditController : Controller

我也通过输入:Allowed Origins - * 在 Azure 上启用了 CORS。

更新:

[Route("User/Info")]
[HttpGet]
public async Task<IActionResult> LoggedInUserInfo()
{
    if (User.Identity.IsAuthenticated)
    {
        var user = ((ClaimsIdentity)User.Identity).FindFirst(ClaimTypes.NameIdentifier).Value;
        var viewmodel = await userService.GetUserByObjectId(user);
        return Json(new { loggedIn = "true", user = viewmodel });
    }
    return Json(new { loggedIn = "false" });
}

【问题讨论】:

  • 嗨@Memo 您是否正在尝试从您自己的页面向.b2clogin.com 源发起跨域请求?
  • 是的,就是这样。我也在我的 B2C 页面上启用了 CORS。
  • XXX.azurewebsites.net/User/Info 尝试向 b2clogin.com 发出 XMLHttpRequest 的场景是什么?
  • @OmerIqbal 我已经更新了帖子。可以看到场景,方法是查询 Azure AD 来获取对象 ID 的用户。

标签: asp.net cors azure-ad-b2c


【解决方案1】:

您似乎正在尝试从 https://xxx.azurewebsites.net/ 域到 https://xxx.b2clogin.com/ 域的跨域请求。

目前.b2clogin.com 域不允许来自任何其他域的任何跨域请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-19
    • 2018-06-18
    • 2020-06-08
    • 1970-01-01
    • 2021-10-31
    • 2020-10-09
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多