C# appsettings.json中的AllowedHosts与.NET Core API 3.x中的UseCors之间的差异
我看到.NET Core 3.x附带了一个新的特殊配置AllowedHosts,用于列出允许访问站点的主机,而CORS(app.UseCors)中已经存在此选项 这两个选项之间的区别是什么?根据,C# appsettings.json中的AllowedHosts与.NET Core API 3.x中的UseCors之间的差异,c#,.net,.net-core,C#,.net,.net Core,我看到.NET Core 3.x附带了一个新的特殊配置AllowedHosts,用于列出允许访问站点的主机,而CORS(app.UseCors)中已经存在此选项 这两个选项之间的区别是什么?根据,allowedHosts用于主机筛选,将应用程序绑定到特定主机名。例如,如果替换以下内容: "AllowedHosts": "*" 与 您尝试使用http://localhost:xxxx/地址您将获得默认的错误请求(400)响应 <!DOCTYPE HT
allowedHosts
用于主机筛选,将应用程序绑定到特定主机名。例如,如果替换以下内容:
"AllowedHosts": "*"
与
您尝试使用http://localhost:xxxx/
地址您将获得默认的错误请求(400)响应
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</ HEAD>
<BODY>
<h2>Bad Request - Invalid Hostname</h2>
<hr>
<p>HTTP Error 400. The request hostname is invalid.</p>
</BODY>
</HTML>
错误的请求
错误的请求-无效的主机名
HTTP错误400。请求主机名无效
因为主机过滤中间件不允许应用程序将应用程序绑定到除example.com
之外的任何其他主机名
科尔斯
另一方面,CORS控制哪些主机尝试访问应用程序上的资源(API)。从技术上讲,CORS不会禁止调用API,但它不允许浏览器呈现响应。调用仍在进行。我们是否可以将多个条目添加到“允许的主机”部分,以逗号分隔或其他形式?比如“localhost,devserver.domain”之类的?@Ak777是的,你可以。该值是不带端口号的主机名的分号分隔列表,例如
example.com;localhost
@TheVillageIdiot在哪种情况下这是有帮助的?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii">
</ HEAD>
<BODY>
<h2>Bad Request - Invalid Hostname</h2>
<hr>
<p>HTTP Error 400. The request hostname is invalid.</p>
</BODY>
</HTML>