Veo que .NET Core 3.x viene con una nueva configuración especial AllowedHosts que se usa para enumerar los hosts que pueden acceder al sitio mientras que esta opción ya existe con CORS (app.UseCors).
¿Cuál es la diferencia entre estas dos opciones?
Según la documentación , allowedHosts se usa para el filtrado de host para vincular su aplicación a nombres de host específicos. Por ejemplo, si reemplaza lo siguiente:
"AllowedHosts": "*"con
"AllowedHosts": "example.com" e intenta acceder a su aplicación usando la dirección http://localhost:xxxx/ obtendrá una respuesta predeterminada de solicitud incorrecta (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> Debido a que el middleware de filtrado de host no permite que la aplicación vincule la aplicación a ningún otro nombre de host, excepto example.com .
CORS, por otro lado, es para controlar qué hosts intentan acceder a un recurso (API) en su aplicación.