Совместное использование ресурсов между разными источниками (CORS) — это важнейший аспект современной веб-разработки, обеспечивающий безопасную связь между различными источниками (доменами, протоколами или портами). В приложении.NET, размещенном в службах IIS, настройку CORS можно выполнить с помощью файла web.config. В этом сообщении блога мы рассмотрим различные способы добавления CORS в ваше.NET-приложение с помощью web.config и IIS. Итак, давайте углубимся и освоим искусство настройки CORS!
Метод 1. Включение CORS для всех источников
Если вы хотите разрешить запросы из любого источника, вы можете добавить следующий фрагмент кода в раздел <system.webServer>вашего файла web.config:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
Метод 2: внесение в белый список определенных источников
Чтобы ограничить CORS определенными источниками, вы можете изменить файл web.config следующим образом:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="https://example.com" />
</customHeaders>
</httpProtocol>
Вы можете добавить несколько источников, разделяя их запятыми.
Метод 3: разрешение учетных данных
Если ваше приложение требует отправки или получения учетных данных (например, файлов cookie, HTTP-аутентификации), вам необходимо включить заголовок Access-Control-Allow-Credentials. Добавьте следующий фрагмент кода в свой web.config:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="https://example.com" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
Метод 4: обработка предварительных запросов
Предварительные запросы отправляются браузером, чтобы проверить, безопасно ли отправлять фактический запрос. Для обработки предполетных запросов вы можете добавить следующий фрагмент кода в свой файл web.config:
<system.webServer>
<handlers>
<remove name="OPTIONSVerbHandler" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
</handlers>
</system.webServer>
Этот код удаляет обработчик OPTIONS по умолчанию и добавляет новый специально для запросов OPTIONS.
Метод 5: Детализированная конфигурация CORS
Для более детального управления вы можете использовать пакет NuGet Microsoft.AspNet.WebApi.Cors. Установите пакет и настройте политику CORS в файле WebApiConfig.cs:
public static void Register(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("https://example.com", "*", "*");
config.EnableCors(cors);
}
Этот подход позволяет определять политики CORS на уровне контроллера или действия.
Настройка CORS в приложении.NET, размещенном в IIS, имеет решающее значение для обеспечения безопасной связи между источниками. В этой статье мы рассмотрели различные методы добавления CORS с помощью файла web.config: от простых глобальных конфигураций до детального управления с помощью пакета Microsoft.AspNet.WebApi.Cors. Используя эти методы, вы можете уверенно обрабатывать запросы из разных источников и обеспечивать удобство работы пользователей с вашими.NET-приложениями.
Не забудьте тщательно протестировать конфигурацию CORS, чтобы убедиться, что она соответствует вашим требованиям безопасности и потребностям вашего приложения. Теперь вперед и покоряйте мир CORS в своих.NET-приложениях!