Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# appsettings.json中的AllowedHosts与.NET Core API 3.x中的UseCors之间的差异_C#_.net_.net Core - Fatal编程技术网

C# appsettings.json中的AllowedHosts与.NET Core API 3.x中的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

我看到.NET Core 3.x附带了一个新的特殊配置AllowedHosts,用于列出允许访问站点的主机,而CORS(app.UseCors)中已经存在此选项

这两个选项之间的区别是什么?

根据,
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>