Сбой аутентификации WebApi на сервере с Angular - PullRequest
0 голосов
/ 05 марта 2020

Я использую Asp. Net web API 2.0 с Angular 6 для пользовательского интерфейса. Решение содержит проекты для angular и веб-API. Мое решение работает нормально (я могу получить доступ к страницам и войти в систему), когда я запускаю его в Visual Studio на локальном хосте. Однако при развертывании сборки на сервере я не могу войти в систему и получить следующую ошибку:

Доступ к XMLHttpRequest по адресу http://xx.xx.xx.xxx: xxxxx / authenticate 'from origin' http://xx.xx.xx.xxx: xxxxx 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Необходимо отправить его быстро. Пожалуйста, помогите!

Ответы [ 3 ]

0 голосов
/ 05 марта 2020

Можете ли вы добавить следующий код в startup.cs -> configure ()

app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin().AllowCredentials());
0 голосов
/ 05 марта 2020

Безопасность браузера предотвращает отправку веб-страницей AJAX запросов в другой домен. Это ограничение называется политикой того же происхождения и не позволяет вредоносному сайту считывать конфиденциальные данные с другого сайта. Однако иногда вы можете позволить другим сайтам вызывать ваш веб-API.

Install-Package Microsoft.AspNet.WebApi.Cors

Откройте файл App_Start / WebApiConfig.cs . Добавьте следующий код в метод WebApiConfig.Register: config.EnableCors();

Затем добавьте атрибут [EnableCors] в класс контроллера

[EnableCors(origins: "*", headers: "*", methods: "*")]
    public class TestController : ApiController
    {
        // Controller methods not shown...
    }

Теперь вы можете получить доступ к API

0 голосов
/ 05 марта 2020

Чтобы быстро обрабатывать CORS для Web API, добавьте следующие параметры в файл web.config Web API внутри раздела <system.webServer>:

<httpProtocol>
    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
</httpProtocol>

Но при включении CORS существует риск безопасности. Хорошее объяснение: здесь .

...