Как включить CORS в приложении С#?

Я создаю приложение C#, для которого мне нужно обновить базу данных и которое должно делать запросы к API, работающему в другом домене. Однако, когда я пытаюсь сделать эти запросы, я получаю ошибки CORS.

Я читал о CORS и понимаю, что это функция безопасности, которую браузеры используют для предотвращения междоменных запросов, но я не знаю, как включить ее в своем приложении C#.

Может кто-нибудь объяснить, как включить CORS в приложении C#, и привести пример того, как сделать междоменный запрос с помощью CORS? Заранее спасибо!

Я пытался установить «Microsoft.AspNetCore.Cors» из диспетчера пакетов, но не работает.

Вы искали asp.net enable cors и прочитали эту ссылку: learn.microsoft.com/en-us/aspnet/core/security/… . Кстати, вы действительно хотите указать, является ли это .NET Framework или Core (или 5, 6 или 7)

Flydog57 19.04.2023 06:16

«[это] не работает» — недостаточно подробное описание проблемы. Пожалуйста, попробуйте еще раз.

ProgrammingLlama 19.04.2023 06:47

Отвечает ли это на ваш вопрос? включить Cors в .NET Core 6

Scryper 19.04.2023 09:29

это функция безопасности, которую браузеры используют для предотвращения междоменных запросов. Нет, как раз наоборот: CORS ослабляет ограничения. Однако это распространенное заблуждение.

jub0bs 19.04.2023 10:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
97
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Скопируйте и вставьте в Program.cs

builder.Services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
    builder.WithOrigins("*")
           .AllowAnyMethod()
           .AllowAnyHeader();

// U Can Filter Here
}));

Затем напишите это, также в Program.cs. Но пишите в правильном порядке, после app.UseRouting(); и перед app.UseAuthentication(); - https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0#middleware-order

app.UseCors("MyPolicy");
Ответ принят как подходящий

используя (var client = новый HttpClient())

Добавьте это в свой код

Jaidev Patel 20.04.2023 04:33

Это неправильное решение. Во-первых, это не имеет ничего общего с CORS. Во-вторых, вы не должны создавать новый HttpClient экземпляр с каждым запросом и не должны регулярно Dispose-инг их

Flydog57 20.04.2023 07:43

Ваш ответ содержит только код. Я рекомендую вам не только опубликовать код в качестве ответа, но и предоставить объяснение того, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением, как правило, более полезны и качественны, и с большей вероятностью привлекут положительные голоса. Можете ли вы отредактировать свой ответ, чтобы включить это?

Jeremy Caney 23.04.2023 20:49

В приложение C# MVC мы можем добавить пакет Microsoft.AspNet.WebApi.Cors NuGet. После успешной установки этого пакета используйте следующую строку в контроллере:

using System.Web.Http.Cors;

И включите CORS перед определением таких API, как:

[HttpPost]
[EnableCors(origins: "*", methods: "*", headers: "*")]
public int GetId(int id)
{
     return id;
}

Другие вопросы по теме