【问题标题】:Enable CORS on IIS for all sites hosted on server在 IIS 上为服务器上托管的所有站点启用 CORS
【发布时间】:2019-07-11 18:21:01
【问题描述】:

我已经安装了 CORS IIS 模块 (v 1.0),并且能够通过使用类似这样的方式修改站点的 web.config 来使其在单个站点上工作。

    <cors enabled="true" failUnlistedOrigins="true">
        <add origin="https://*.example.com"> 
        </add>
    </cors>

除了将这个添加到每个站点的每个 web.config 之外,我如何才能进行一次此更改并将其应用于服务器上托管的所有站点?

【问题讨论】:

  • origin的值因站点而异,不可能在所有站点上使用相同的规则。
  • 如果托管的所有站点都有相同的域但不同的子域,有没有办法设置一次,以便允许所有子域?谢谢

标签: iis cors


【解决方案1】:

除了将这个添加到每个站点的每个 web.config 之外,我如何才能进行一次此更改并将其应用于服务器上托管的所有站点?

据我所知,我们可以为整个 IIS 服务器或特定 IIS 站点、应用程序、虚拟目录、物理目录或文件 (system.webServer/cors) 启用、禁用 CORS。

如果你想在 IIS 中为整个站点启用 CROS,我建议你可以修改 applicationhost.config 的 web.server 标签。这将使整个网站都使用 CORS。

路径:C:\Windows\System32\inetsrv\config\

详情,可以参考下面的配置:

<system.webServer>
    <cors enabled="true" failUnlistedOrigins="true">
        <add origin="*" />
        <add origin="https://*.microsoft.com"
             allowCredentials="true"
             maxAge="120"> 
            <allowHeaders allowAllRequestedHeaders="true">
                <add header="header1" />
                <add header="header2" />
            </allowHeaders>
            <allowMethods>
                 <add method="DELETE" />
            </allowMethods>
            <exposeHeaders>
                <add header="header1" />
                <add header="header2" />
            </exposeHeaders>
        </add>
        <add origin="http://*" allowed="false" />
    </cors>
</system.webServer>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2015-03-23
    • 2017-09-22
    相关资源
    最近更新 更多