在 Web.config 中,配置允许多个指定的域名进行跨域访问

2023-11-05

一般来说,如果是要允许跨域访问,最简单的设置,就是在 Web.config 中,将 Access-Control-Allow-Origin 设置为 * 即可,如下所示:

<system.webServer>
    <!-- 其它配置 -->

    <httpProtocol>
        <customHeaders>
            <!-- 跨域配置 -->
            <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
    </httpProtocol>

</system.webServer>

但是对于强迫症来说,这样大而全的设置,感觉上不利于网站的安全。那么,如果要具体的指定允许跨域访问的域名,怎么处理呢?

第一种情况:指定具体的单个域名。

这种情况很好处理,在上面的配置中,将 Access-Control-Allow-Origin 的 value 设置为该域名(http://bbb.aaa.com)即可,注意:不能使用泛域名

第二种情况:指定多个域名。

这种情况,就不能在上述的 value 中写入多个域名了,哪怕用逗号分隔,也完全没有用。

这时,可以使用 URL Rewrite 组件达到这个效果。

URL Rewrite 的安装方式:

该组件安装好后(重启服务器),在 Web.config 中定位到 <system.webServer>,不用再添加 <httpProtocol> 中的跨域配置了,取而代之的是添加 <rewrite> 的配置,如下所示:

<system.webServer>
    <!-- 其它配置 -->

    <rewrite>
        <outboundRules>
            <rule name="AddCrossDomain">
                <match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{HTTP_ORIGIN}" pattern="(http(s)?://((.+\.)?domain1\.com|(.+\.)?domain2\.com|(.+\.)?domain3\.com))" />
                </conditions>
                <action type="Rewrite" value="{C:0}" />
            </rule>
        </outboundRules>
    </rewrite>

</system.webServer>

至此,允许多个指定域名的跨域访问就配置完了。



作者:缺水的海豚
链接:https://www.jianshu.com/p/85855a991275
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Web.config 中,配置允许多个指定的域名进行跨域访问 的相关文章

  • 导入错误:无法导入名称线程

    这是我第一次学习Python 我继续尝试线程这篇博文 http www saltycrane com blog 2008 09 simplistic python thread example 问题是它似乎已经过时了 import time
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 移动/调整窗口大小时闪烁

    我开发了一个显示 jpeg 图像的应用程序 它可以显示 4 个图像 屏幕的每个象限各一个 为此 它使用了 4 个窗口 窗口没有边框 框架 也没有标题栏 当加载新图像时 窗口大小会根据新图像进行调整 然后显示该图像 尤其是当窗户做得较大时 经
  • 由于图形处理单元配置,不支持 Windows Phone 模拟器(Mac 上的 Windows 7)

    启动 Windows Phone 模拟器时出现错误 不支持 Windows Phone 模拟器 因为您的计算机没有所需的图形处理单元配置 如果没有图形处理单元 XNA 框架页面将无法运行 您想继续启动模拟器吗 当我尝试访问网页 任何网页 时
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • Git 扩展 - 无法在 Windows 上推送到网络驱动器中的 git bare 存储库

    我正在 Windows 上学习 git 我已经安装了 Git 扩展 版本 2 47 3 并使用了它 我在我的 C 单元中创建了一个裸存储库 作为中央存储库 并在硬盘中的其他任何位置创建了个人存储库 我对硬盘中的这两个存储库进行提交 推送和拉
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

    更大的问题是一般如何使用实时 ETW 网络堆栈事件 但我特别感兴趣Microsoft Windows NDIS PacketCapture 提供程序 所有其他网络堆栈提供程序都部分工作 但 NDIS PacketCapture NDIS P
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 不在焦点时响应键盘? (C#、Vista)

    我正在尝试编写一个应用程序 只要按下 Shift 键 无论当前哪个应用程序具有焦点 它都会做出响应 我尝试过这个SetWindowsHookEx 与GetKeyboardState 但这两种方法仅在应用程序窗口具有焦点时才有效 我需要它在全
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • teracopy 如何替换默认的 Windows 副本

    我问了这个问题Windows 文件复制内部结构 动态加密 https stackoverflow com questions 24220382 windows file copy internals on the fly encryptio
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • Windows 目录永远不会包含临时文件的非 ASCII 字符?

    在 Windows 上使用 MinGW 7 3 0 由于 Windows 限制 Hunspell 无法从包含非 ASCII 字符的位置加载字典文件 我已经尝试了所有方法 1 现在我将文件复制到没有 ASCII 字符的路径 然后再将其交给 H
  • 在哪里可以找到 Windows 7 UX 指南中推荐的图标/动画?

    Windows 7 UX 指南有很好的插图和图标示例 但我在 SDK 中确实找不到它们 他们藏在某个地方 还是找不到 如果您谈论的是常见的 UI 图标 那么您应该以编程方式获取它们 例如 您可以使用 var errIcon HICON be
  • Windows 操作系统中 ST_INO(os.stat() 输出)的含义

    谁能告诉我这个值的含义是什么st ino是跑步时os stat 在 Windows 上 Python 3 5 3 在早期的 Python 版本中 它包含虚拟值 但最近发生了变化 我找不到它是如何计算 生成的 我怀疑它因文件系统 NTFS F
  • Tensorflow 导入错误:没有名为“tensorflow”的模块

    我在 Windows Python 3 5 Anaconda 环境中安装了 TensorFlow 验证成功 有警告 tensorflow C gt python Python 3 5 3 英特尔公司 默认 2017 年 4 月 27 日 1
  • 在 Win7 登录屏幕上运行应用程序[重复]

    这个问题在这里已经有答案了 我想通过服务在 Windows 7 的登录屏幕上运行应用程序 我对此进行了长期研究并尝试了不同的方法 但不幸的是到目前为止还没有完全成功 我设法在当前登录用户的锁定屏幕上运行该应用程序 起初我认为这就是我基本上试
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS

随机推荐

  • 【ReactNative/JS】uint8array转string convert uint8array to string

    客户端 服务器使用的protobuffer交互 客户端收到的是uint8array 面临着从unit8array转string 我使用的是下面的Crossplatform method Working with node js or oth
  • H3C官网-inode客户端下载

    打开 新华三官网 点击登录 用户名 yx800 密码 01230123 MacOS 安装 iNode Client 的事故与故事 提示 libCoreUtils dylib 将对您的电脑造成伤害 知乎 怎么用mac通过inode上网 知乎
  • js对象获取属性值的方法([]和.方式的不同)

    javascript获取目标对象的属性值 有两种方法 1 通过object key 即 的方式 2 通过object key 即 方式 下面用一个例子来说明 通过 方式获取属性值 key是静态值 即 h value 时 h是没有 为静态值
  • python中的生成器(generator)

    一 生成器 生成器是 Python 中非常有用的一种数据类型 它可以让你在 Python 中更加高效地处理大量数据 生成器可以让你一次生成一个值 而不是一次生成一个序列 这样可以节省内存并提高性能 二 实现generator的两种方式 py
  • js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

    最近下班无聊 就看了一下之前写的教务系统模拟登录代码 python 爬虫 整体逻辑大概自己总结了一下 1 请求验证码图片 2 对输入的密码进行加密 3 封装账号 密码 验证码 发送post请求 但是在第2步的时候对输入的密码进行加密的过程中
  • 解决Git中fatal: refusing to merge unrelated histories

    Git的报错 在使用Git的过程中有时会出现一些问题 那么在解决了每个问题的时候 都需要去总结记录下来 下次不再犯 一 fatal refusing to merge unrelated histories 今天在使用Git创建项目的时候
  • Python中关于列表list的各种技能整理【定义、增删查改、函数、列表表达式】附练习题

    大家早上好 本人姓吴 如果觉得文章写得还行的话也可以叫我吴老师 欢迎大家跟我一起走进数据分析的世界 一起学习 感兴趣的朋友可以关注我的数据分析专栏 里面有许多优质的文章跟大家分享哦 今天带大家温习的是Python中的列表操作 全篇博文没有难
  • 【数据库学习】数据库平台:Postgres(PG)与PostgreSQL

    中文文档 PostgreSQL 10 6举例 Postgres原理及底层实现 1 安装配置与常见命令 1 安装与配置 安装 yum install https rpm 1 gt 安装目录 bin目录 二进制可执行文件目录 此目录下有post
  • Lim测试平台快速上手教程

    一 数据准备 这里我们将Lim平台作为测试项目 并通过编写一个简单的用例来介绍一下LIm的功能和流程 用例的步骤如下 用户登录 创建项目 修改项目 项目地址 http 121 43 43 59 二 编写用例 大多的接口测试平台都需要用户先维
  • 17_LinuxLCD驱动

    目录 Framebuffer设备 LCD驱动简析 LCD驱动程序编写 LCD屏幕参数节点信息修改 LCD 屏幕背光节点信息 使能Linux logo显示 设置LCD作为终端控制台 Framebuffer设备 先来回顾一下裸机的时候LCD驱动
  • 行为树的原理及实现

    查阅了一些行为树资料 目前最主要是参考了这篇文章 看完后感觉行为树实乃强大 绝对是替代状态机的不二之选 但从理论看起来很简单的行为树 真正着手起来却发现很多细节无从下手 总结起来 就是 1 行为树只是单纯的一棵决策树 还是决策 控制树 为了
  • 如何管理技术团队?我的 6 个建议

    我工作近 10 年 是程序员出身 有大概 5 年的管理经验 最多管理过 40 人的技术团队 本文是个人的一些观点和建议 以及这些年的一点感悟 希望对于管理人员 特别是中层管理者有点用处 管理技术团队 其实也是管理的一种 我个人认为 管理能力
  • ms08-067漏洞复现

    文章目录 ms08 067简介 复现 实验环境 漏洞利用 ms08 067简介 Windows Server服务RPC请求缓冲区溢出漏洞 MS08 067 漏洞类别 远程溢出 CVE ID 2008 4250 漏洞详情 MicrosoftW
  • 更改软件计算机无法启动怎么办,无法开机:windows未能启动,原因可能是最近更改了硬件或软件...

    win7系统 电脑无法启动 屏幕提示 windows未能启动 原因可能是最近更改了硬件或软件 这个问题我电脑出现过一模一样的 不用从装系统 简单一步就能开机 1 开机出现第一个页面 就是这个图片这样按F8 进入安全模式 2 然后就是这个页面
  • QT-------UI基础到进阶,干货满满!!!

    目录 一 UI基础 1 QWidget类 掌握 2 添加子组件 掌握 3 样式表 熟悉 二 UI进阶 1 Designer 设计师 掌握 2 布局 Layout 掌握 3 QWidget属性 掌握 4 UI指针 掌握 5 基础组件 熟悉 5
  • 云服务器配置环境Linux初学常用命令以及操作步骤

    云服务器Linux初学常用命令 ls 查看此目录下所有文件夹的名称 cd 返回上一个文件夹 cd 返归根目录 cd file 查看指定的文件夹 file是你自己指定的文件夹的名称 tar zxvf file 解压你指定的gz包 file是你
  • layui 日期范围选择

    layui时间范围选择 相信很多时候项目中会遇到时间范围选择 废话不多说上图 上代码 div class layui inline div class layui input inline style width 160px div div
  • “数字孪生城市”的概念,你知道多少?

    随着大数据时代的到来以及互联网 云计算 物联网 人工智能技术等新一代先进信息技术的发展 近年来陆续诞生了数字城市 智慧城市以及数字孪生城市等各种 新型城市 概念 数字城市是随着1998年美国前副总统阿尔 戈尔提出 数字地球 之后而产生的概念
  • W25Q256学习

    一 基本特性 容量256Mb 最小的组织单位是页每个页256个字节 可进行页编程 一次写256个字节 16个页组成4KB的扇区 可进行扇区擦除 128个扇区组成32KB块 64KB的组 可以整片擦除 256有8192个扇区和512个块 25
  • 在 Web.config 中,配置允许多个指定的域名进行跨域访问

    一般来说 如果是要允许跨域访问 最简单的设置 就是在 Web config 中 将 Access Control Allow Origin 设置为 即可 如下所示