IIS CORS 模块配置

一、CORS 配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <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>
</configuration>

使用 IIS CORS 模块,可以:

  1. 为整个 IIS 服务器或特定 IIS 站点、应用程序、虚拟目录、物理目录或 system.webServer/cors) (文件启用、禁用 CORS。
  2. 将所有源主机域配置为使用 * 源主机规则接受。
  3. 配置特定源主机域的列表,并仅允许与列出的源主机域之一具有相同的源请求标头值的 CORS 请求。
  4. 配置源域列表时配置野生卡源主机域,例如 http://* 或 https://*.mydomain.com
  5. 配置应禁止作为 CORS 请求的源域列表。
  6. 使用配置的值自定义 CORS 响应标头值。

 

二、CORS 配置说明

cors 元素的属性

Attribute说明
enabled 可选布尔属性。
指定是否启用 CORS。
默认值为 false
failUnlistedOrigins 可选布尔属性。
指定如果请求的源与配置的源列表不匹配,或者源主机配置为不允许,是否要使用 403 设置 CORS 响应状态代码。
默认值为 false

 

添加源规则 <添加>

 

源规则

集合 <add> 的 <cors> 元素指定要添加到源规则列表的单个原点。

源规则的属性

Attribute说明
origin 必需的字符串属性。
指定要对其施加源规则的源主机。 可以使用星号 (*) 将此规则应用于所有源请求标头值。 还可以使用星号 (*) 作为子子域名称的通配符。 如果有多个源规则,则无论允许的属性值如何,它都会应用于最具体的源主机名规则。
allowed 可选布尔属性。
指定是否接受源主机的 CORS 请求。
默认值为 true
allowCredentials 可选布尔属性。
指定是否设置 Access-Control-Allow-Credentials: true CORS 响应标头。 此属性应仅用于特定源主机名,而不是 * 源主机,以符合 CORS 协议。
默认值为 false
maxAge 可选的整数属性。 持续时间(以秒为单位)。
指定预检 CORS 请求的响应标头的值 Access-Control-Max-Age 。 应仅为 CORS 预检请求设置 Access-Control-Max-Age 响应标头。 如果不想在 CORS 响应中设置 Access-Control-Max-Age 标头,请为此属性设置 -1。
默认值为 -1

仅使用 * 源主机规则

如果只有 * 源主机规则,则 IIS CORS 模块与存在特定源主机名规则时的行为不同。 如果只有 * 源主机规则,IIS CORS 模块将执行以下操作:

    1. 无论客户端 CORS 组件发送的请求标头的值如何,Access-Control-Allow-Origin 响应标头的值 origin 都设置为 *。
    2. Vary: origin 未添加响应标头,因为 IIS CORS 不会生成除 * 以外的 Access-Control-Allow-Origin 响应标头值,并且无需使用 Vary: origin 响应标头值。

 

 

 

更多:

IIS 配置跨域_IIS配置Access-Control-Allow-Origin

IIS 配置referer 请求筛选_请求拒绝

IIS 执行此操作时出错。 详细信息:web.config 错误,.net core项目

posted @ 2024-10-08 16:06  天马3798  阅读(40)  评论(0编辑  收藏  举报