B2C和Azure应用服务的CORS问题

时间:2019-02-06 20:49:44

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

我通过在控制器中使用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" });
}

1 个答案:

答案 0 :(得分:1)

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

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