c# - appsettings.json 中的 AllowedHosts 和 .NET Core API 3.x 中的 UseCors 之间的区别
问题描述
我看到 .NET Core 3.x 带有一个新的特殊配置AllowedHosts,用于列出允许访问该站点的主机,而 CORS (app.UseCors) 已经存在此选项。
这两个选项有什么区别?
解决方案
根据文档,allowedHosts
用于主机过滤以将您的应用绑定到特定主机名。例如,如果您替换以下内容:
"AllowedHosts": "*"
和
"AllowedHosts": "example.com"
并且您尝试使用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>
由于主机过滤中间件不允许应用程序将应用程序绑定到除example.com
.
CORS
另一方面,CORS 是控制哪些主机尝试访问您的应用程序上的资源 (API)。
推荐阅读
- python - 转换数据帧“to_csv”时如何在数值前面填充零?
- android - 在 Appcelerator Studio 中运行项目时出错
- xamarin.forms - ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交
- if-statement - 如何根据其他单元格值在具有背景颜色计数的谷歌工作表中计数或 sumif
- docx4j - 在最新版本的 xlsx4j 中为空 JaxbSmlPart
- vue.js - 处理 vue 中的组件的最佳解决方案是什么?
- android-studio - 当我尝试同步 Gradle 文件时出现以下错误:错误:无法解决:android.recyclerview:recyclerview: Affected Modules: app
- firebase - 如何从 Google Cloud IoT 核心获取活动设备列表
- ios - 绕过“使用 Apple 登录”
- java - 有没有办法在有或没有反射的情况下访问内部类中的私有方法