CORS 无法在没有 SSL 证书的 IIS 服务器中工作
Posted
技术标签:
【中文标题】CORS 无法在没有 SSL 证书的 IIS 服务器中工作【英文标题】:CORS not working in a IIS Server without SSL Certificate 【发布时间】:2020-03-09 22:30:43 【问题描述】:我有一个 .net 核心 API 应用程序,但如果 CORS 部署在没有 SSL 认证的 IIS 服务器中,则 CORS 不起作用
除了在我们的服务器中注册 SSL 证书之外,还有其他解决方案吗?
注意:我们已经在后面的代码中指定了允许所有来源/方法/凭据/标头
【问题讨论】:
不言而喻,但如果你不保护与 https 的通信,这不就像带着花园软管出现在房子火灾中吗? 【参考方案1】:这和我的问题一样。
我已经在我的 Startup.cs 中添加了这些,但它不起作用。
app.UseCors(builder => builder.WithOrigins("http://localhost:4200")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
和
app.UseCors(builder => builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
我什至添加了一个 OptionsMiddleware 但似乎不起作用。
【讨论】:
当我们部署在带有 ssl 证书的 IIS 中时,它也可以工作,但没有 ssl 证书,它就不起作用【参考方案2】:我遇到了同样的问题,但它通过以下方式解决了:-
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
【讨论】:
以上是关于CORS 无法在没有 SSL 证书的 IIS 服务器中工作的主要内容,如果未能解决你的问题,请参考以下文章