Habilitando CORS en ASP.NET Web API 2

La seguridad de los navegadores Web previene que una página Web realice peticiones AJAX hacia otro dominio. Esta restricción es llamada la Política del Mismo Origen (same-origin policy), y previene que un sitio malicioso pueda leer datos sensitivos de otro sitio.

Dos URLs son parte del mismo origen si tienen el mismo Esquema, Host y Puerto.

Los siguientes URLs tienen el mismo origen:

http://northwind.com/api/products
http://northwind.com/api/categories

Los siguientes URLs tienen orígenes diferentes de los dos anteriores:

http://northwind.net/api/products <= Diferente dominio
http://northwind.com:8000/api/products <= Diferente puerto
https
://northwind.com/api/products <= Diferente esquema
http://www.northwind.com/api/products <= Diferente subdominio

Nota: Internet Explorer y Microsoft Edge no consideran el puerto cuando comparan orígenes.

Es importante entender que la política same-origin NO evita que el navegador envíe la petición, en lugar de eso, evita que la aplicación vea la respuesta. Cuando una petición AJAX es enviada al servicio Web, el navegador Web SI envía la petición al servicio y la respuesta es exitosa. Sin embargo, la invocación AJAX devuelve un error.

Cross Origin Resource Sharing (CORS) es un estándar W3C que permite a un servidor configurar la política same-origin. Utilizando CORS, un servidor puede permitir explícitamente algunas peticiones de otros dominios (cross-origin) y, al mismo tiempo, rechazar otras.

El siguiente video forma parte del entrenamiento en línea “Implementando Web API en ASP.NET MVC” y muestra cómo habilitar CORS en ASP.NET Web API 2.

Si no estás participando en el entrenamiento y deseas conocer más acerca de CORS, puedes consultar el siguiente enlace:

Enabling Cross-Origin Requests in ASP.NET Web API 2
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api   

Saludos!

Esta entrada fue publicada en C#, Entrenamiento, JavaScript, jQuery, MVC, Web API. Guarda el enlace permanente.

Deja un comentario