专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

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

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:55:05       共计:3659 浏览

一般来说,如果是要允许跨域访问,最简单的设置,就是在 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 的安装方式:


   可以从微软官方下载 URL Rewrite(支持 IIS 7 以及之后的版本)

   可以在 IIS 中使用 Web 平台安装器 进行安装


该组件安装好后(重启服务器),在 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>


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


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:ASP.NET MVC中设置跨域_WebApi跨域(CORS)配置 | ·下一条:服务器错误401 - 未授权: 由于凭据无效,访问被拒绝

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有