asp.net - 如何通过 web.config 文件中的 Access-Control-Allow-Origin 允许多个源域?

标签 asp.net web-config cors request-headers

无论如何允许在 web.config 文件中使用 Access-Control-Allow-Origin 的多个跨域?

目前我正在使用*一次允许多个域。

<add name="Access-Control-Allow-Origin" value="*" />

但我不想使用 *因为它对所有域开放,我只想允许某些特定域。

那么,无论如何允许使用 web.config 文件中的 Access-Control-Allow-Origin 的多个跨域?

我找到了一些相关的帖子:
  • Access-control-allow-origin with multiple domains
  • Access-Control-Allow-Origin Multiple Origin Domains?

  • 我已经尝试获取请求 header 来验证请求来源 (如帖子 1 中所建议)但没有成功。因为我使用的是 iframe 元素,所以当我尝试获取请求 header 时,它会提供 iframe 的来源(域)。但在这里我想要原始(父窗口)原点(域)。

    最佳答案

    对于 IIS 7.5+,您可以使用 IIS CORS 模块:https://www.iis.net/downloads/microsoft/iis-cors-module

    您的 web.config 应该是这样的,替换您的域的 [origin_#]:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <cors enabled="true" failUnlistedOrigins="true">
                <add origin="[origin_1]">
                    <allowMethods>                    
                        <add method="GET" />
                        <add method="HEAD" />
                        <add method="POST" />
                        <add method="PUT" /> 
                        <add method="DELETE" /> 
                    </allowMethods>
                </add>
                <add origin="[origin_2]">
                    <allowMethods>
                        <add method="GET" />
                        <add method="HEAD" />
                        <add method="POST" />
                        <add method="PUT" /> 
                        <add method="DELETE" /> 
                    </allowMethods>
                </add>
            </cors>
        </system.webServer>
    </configuration>
    

    您可以在此处找到配置引用:https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-reference

    关于asp.net - 如何通过 web.config 文件中的 Access-Control-Allow-Origin 允许多个源域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24795268/

    相关文章:

    asp.net - 如何使 ASP.NET 应用程序仅通过 HTTPS 提供页面服务?

    django - AngularJS + Django Rest Framework + CORS(CSRF Coo​​kie 未显示在客户端中)

    dart - 如何在没有CORS的Dart编辑器中调试客户端Dart代码

    ASP.Net VS ASP.Net MVC

    mysql - gridview 更新时输入字符串的格式不正确

    asp.net - Web.config maxRequestLength 被忽略,只有 maxAllowedContentLength 有效

    asp.net - Web.config自定义错误模式冲突

    ASP.net 这是预编译工具生成的标记文件,不要删除

    asp.net - 清理旧购物车

    javascript - Angular : Origin http://localhost not found in Access-Control-Allow-Origin header