C # и Angular - Ошибка перекрестного происхождения - PullRequest
0 голосов
/ 10 июня 2018

Мы разрабатываем веб-сайт на Angular 5. Серверная часть была разработана с использованием .Net Web API и SQL Server.Веб-сайт будет развернут в Azure и будет доступен как из Интернета, так и из интрасети.

Мы настроили параметры CROSS Origin, и он работает нормально.Теперь мы интегрировали федерацию единого входа Ping с использованием SAML.Теперь сайт перенаправляется на стороннюю страницу входа в систему и выдает ошибку «Отсутствует контроль доступа, разрешен заголовок региона на ресурсе. Исходный ноль, следовательно, запрещен доступ».Ноль не допускается » перед перенаправлением на страницу входа.Попытка указать несколько источников, разделенных запятой, но при этом получить ту же ошибку.Ниже приведен пример кода.

var cors = new EnableCorsAttribute("http://localhost:4200", "*", "*");
cors.Origins.Add("https://3rd party url");  
config.EnableCors(cors);

То же самое работает нормально, если доступ к SSO осуществляется через веб-API напрямую, набрав url.Пожалуйста, предоставьте любые указатели, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 10 июня 2018

Вы можете использовать прокси в своем клиенте и изменить происхождение клиента на любое другое.

Преимущества этого решения:

  1. Вам не нужно определять CORS в своем бэкэнде (повышение безопасности)
  2. Вам не нужно беспокоиться о своем клиенте, так как вы просто запускаете свой проект через npm start , как только вы захотите выпустить приложение, вы можете запустить ng build команда и прокси будут игнорироваться из ваших настроек.

Для использования прокси

  1. отредактируйте "start" вашего package.json, чтобы посмотреть ниже

    "start": "ng serve --proxy-config proxy.conf.json",

  2. создайте новый файл с именем proxy.conf.json в корне проекта и внутри него определите свои прокси, как показано ниже

    {
      "/api/*": {
        "target": "http://localhost:56492",
        "secure": "false"
      }
    }
    
  3. Важно то, что выиспользуйте npm start вместо ng serve

Теперь в вашем файле service.ts отправляйте / получайте URL-адреса запросов вместо localhost: 56492 / ... просто введите / api / Film,

Подробнее читайте здесь: Настройка прокси угловая 2 кли

...