【发布时间】: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