【问题标题】:CORS Issue with Azure Ad Authentication Asp.net Core 2.2 and Angular 8.2 clientAzure 广告身份验证 Asp.net Core 2.2 和 Angular 8.2 客户端的 CORS 问题
【发布时间】:2020-02-01 16:53:49
【问题描述】:

我正在设置一个带有工作或学校帐户身份验证的新 ASP.NET Core Web API。该 API 将由 Angular 8.2 应用程序使用。我从 Nuget 添加了 CORS(Microsoft.AspNetCore.Cors - 2.2.0 版)并将我的 Startup.cs 文件配置为 AddCors 和 UseCors。我已配置为 AllowAnyOrigin、AllowAnyMethod、AllowAnyHeader。我的 UseCors 语句也在 UseMVC 语句之上。

该 API 在 Web 浏览器上独立执行时可以正常工作。但是,当我将其插入 Angular 应用程序时,我遇到了错误。

从源“http://localhost:4200”访问“https://localhost:44342/api/Values”处的 XMLHttpRequest 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。

为什么 AllowAnyOrigin 没有被识别?

有人可以帮我吗?

【问题讨论】:

  • 响应的 HTTP 状态码是什么?您可以使用浏览器开发工具中的网络窗格进行检查。是 4xx 还是 5xx 错误而不是 200 OK 成功响应?

标签: cors azure-active-directory asp.net-core-webapi angular8 asp.net-core-2.2


【解决方案1】:

以下代码对我很有帮助:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }

  app.UseAuthentication();

  app.UseCors(builder => builder
  .AllowAnyOrigin()
  .AllowAnyMethod()
  .AllowCredentials()
  .AllowAnyHeader());
  app.UseMvc();

}

我找到了here。

关于类似问题有几篇帖子,这里是相同的链接,请检查并告诉我它是否适合您。

How does Access-Control-Allow-Origin header work?

Angular app running on azure app service not receive .AspNetCore.Antiforgery cookie sent by .net core web api app on azure

ASP.NET5, MVC 6 Cookies not being shared across sites

希望对您有所帮助,请随时在您的任何对话中标记我。

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 2020-06-08
    • 2019-09-06
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多