两个ASP.NET Web应用程序 - 跨起源请求总是成功没有自由裁量权(Two ASP.NET w

2019-10-18 09:11发布

我创建了两个ASP.NET Web应用程序,一个MVC应用程序,一个Web API新的解决方案。

我想访问使用子域名的API像api.hybridwebapp.com/values所以我实现了一个IHttpRouteConstraint确保request.RequestUri.Host == "api.mydomain.com"对所有API的路线。 在这个答案的更多细节 。

然后,我添加下面一行到我的主机文件:

127.0.0.1    hybridwebapp.com  api.hybridwebapp.com

在IIS管理器I(80对80 api.hybridwebapp.com hybridwebapp.com)创造了2个网站(每个项目),并设置相应的绑定每个网站

在项目的网络性能,在我每个网站的根目录设置一个本地IIS虚拟目录:

MVC项目网址: http://hybridwebapp.com

网络API项目地址: http://api.hybridwebapp.com

我在MVC应用程序进行了点击处理程序进行跨域请求,网页API,它成功地使它尽管我从来没有实际配置上的Web API的任何一个Cors属性。

这是一种误导,因为这将明显地在生产中失败。 我能做些什么使这更realistic..I'd居然喜欢捏捏CORS配置有一个严格的范围,但我不能这样做,当它接受所有的请求,即使是那些失败了..

Answer 1:

跨子域的请求仍然被认为是跨域请求为不同的子域可以指向完全不同的IP地址和服务器。 如果您没有设置正确CORS在生产设置你一定会得到错误。

编辑:要正确地模仿产品设置,你需要用打IIS结合的配置。 如果你不能得到它的工作,你应该尝试一个VM主办api.hybridwebapp.com,作为CORS在不同服务器之间自动触发这肯定会工作。



文章来源: Two ASP.NET web applications - Cross origin request always succeeds without discretion