【问题标题】:How to set up CORS properly on IIS?如何在 IIS 上正确设置 CORS?
【发布时间】:2016-08-12 11:45:46
【问题描述】:

我最近开始开发一个 PhoneGap 移动应用程序,该应用程序将进行身份验证并与 ASP.NET WebApi Web 服务一起使用。我早期的一个问题是使用 web.config 中的设置在 IIS 中启用 CORS:

<system.webServer>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
  </customHeaders>
</httpProtocol>

此设置在我的 .NET WebAPI 应用程序中。从上面看,它似乎为所有人打开了访问控制,但我不确定还有什么可能进入标题的值部分。移动应用程序(HTML、JavaScript 等)都在移动设备上,通过 jQuery 调用服务器上的 API。

我的 API / HTML 似乎在上述设置到位的情况下按预期工作。如果我删除它,我会收到 CORS 错误。以上是正常的,还是应该更具体一些?

【问题讨论】:

  • 嗨,LTMOD,我的回答是否适合您,如果您不适合,请告诉我,谢谢
  • 嗨,威利,对不起,不。我的问题更多是关于是否应该允许值中的星号,或者是否应该更具体。如果您只是要让每个人都可以访问该资源,那么我一开始就没有看到 CORS 的意义。
  • 是的,你是对的,但在我的情况下,通常使用身份验证和授权来保护你的数据,希望这条消息可以帮助你,谢谢

标签: jquery cordova iis asp.net-web-api cors


【解决方案1】:

你好尝试把代码 WebApiConfig 像下面的代码一样

 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
        }
}

顺便说一下,您必须为 Nuget 的 EnableCors 下载“Microsoft.AspNet.WebApi.Cors”

【讨论】:

    【解决方案2】:

    此链接详细描述了 CORS 以及它如何与 WebAPI 一起使用。 http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-cors

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多