【问题标题】:What are the best practices to enable CORS for docker containerized ASP.NET core app为 docker 容器化 ASP.NET 核心应用启用 CORS 的最佳实践是什么
【发布时间】:2019-12-02 16:16:48
【问题描述】:

在容器化到 docker 容器的 asp.net core api 中启用 CORS 的最佳实践是什么?使用了 Docker compose。

对于 asp.net 核心 API cors 在 Startup.cs 中启用。在调试模式下,CORS 没有问题。但是当我将此应用程序放入 Docker 容器时,CORS 标头丢失了。

我读过关于 Nginx 的文章,但这对我来说不是最好的方法。

我在前端有 Angular 6。在后端我有 ASP.NET Core API。 基本上,当我在调试模式下运行 asp.net 核心应用程序时,可以从本地前端调用它。当我在 Docker 容器中添加并运行我的后端时,我无法从前端调用它。

我有错误: - 请求的资源上不存在“Access-Control-Allow-Origin”标头。

【问题讨论】:

  • 没有所谓的“最佳实践”。只有“对你来说足够好的东西”。您能否更好地描述您面临的问题以及到目前为止您为解决该问题所做的工作?
  • 你基本上有2个选择;将 CORS 卸载到您的基础架构中的某些东西(反向代理、API 管理解决方案等)或在您的 .NET Core 应用程序中自行处理:docs.microsoft.com/en-us/aspnet/core/security/…。在不知道自己想要做什么的情况下,很难判断哪个最适合您。

标签: c# docker docker-compose dockerfile


【解决方案1】:

这个答案不是针对asp.net的,而是更笼统的。

在使用 docker 或 docker-compose 时,CORS 没有什么特别之处。但是,从网络的角度来看,当使用多个 docker 容器时,您更接近最终设置,多个组件通过网络进行交互,并且可能需要 CORS 配置。

所以,我想说最佳实践将取决于用例。您是否使用 docker 和 docker-compose 进行测试?如果是这样,我只需为您的 docker 设置定义特定配置,以将等效设置设置为调试模式,例如使用 ENV 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2018-09-19
    • 2018-12-23
    • 2019-07-19
    相关资源
    最近更新 更多