Как использовать IdentityServerClientCorsOrigins? (ABP.IO )

#identityserver4 #abp

#identityserver4 #abp

Вопрос:

В настоящее время источники cors настроены в настройках приложений, однако я не могу настроить так, чтобы он получал исходные данные из базы данных SQL Server.

введите описание изображения здесь

Я прокомментировал это с разделами ORIGINS, однако у меня это уже настроено в базе данных, но оно отклоняется

введите описание изображения здесь

Это ошибка, которую я получаю при вызове из http://localhost:3000

Доступ к XMLHttpRequest в ‘https://ids.local/connect/userinfo » из источника «http://localhost:3000 ‘ заблокирован политикой CORS:
ответ на предполетный запрос не проходит проверку контроля доступа: на запрошенном ресурсе отсутствует заголовок ‘Access-Control-Allow-Origin’.

Ответ №1:

Примените их к проекту IdentityServer:

  1. Добавить AllowedCorsOrigins в конфигурацию клиента на Config.cs или в DB (если используется EF)
 AllowedCorsOrigins =
                        { 
                            "http://localhost:3000" 
                        },
  

Обязательно используйте источник (не URL) при настройке CORS. Например: https://foo:123 / — это URL-адрес, тогда как https://foo:123 это происхождение.

Ссылка: http://docs.identityserver.io/en/dev/topics/cors.html#client-based-cors-configuration

  1. Если у вас есть пользовательская политика cors, добавьте ее в startup.cs ConfigureServices .
 services.AddCors(options =>
            {
                options.AddPolicy("default", policy =>
                {
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });
  
  1. При включении startup.cs Configure добавьте cors после IdentityServer.
 app.UseIdentityServer();
app.UseCors("default");
  

IDS4 уже зарегистрировал пользовательскую политику cors, если она у вас тоже есть, обязательно добавьте ее после промежуточного программного обеспечения IDS4

Комментарии:

1. спасибо за ответ, однако я хочу получить CorsOrigins из базы данных SQL Server. Я не хочу жестко кодировать его, не иметь его в appsettings.json

2. Какое значение у вас есть в БД?

3. Обновил свой ответ, я думаю, я знаю проблему с уром, ее причину упорядочения промежуточного программного обеспечения

4. Это сбивает с толку. Мне нужны настройки и конфигурация только в том случае, если мы используем базу данных SQL Server с использованием EF. Опять же, я не использую пользовательские CORS, поэтому любую конфигурацию, которую я хочу получить из таблиц базы данных IdentityServer4

5. Вам также не нужны usecors, просто удалите это тоже, вот рабочий пример github.com/nahidf/IdentityServer4-adventures/blob /. … В моем примере есть JS-клиент, который полностью функционирует, просто установив cors в конфигурации клиента (мой образец находится в памяти, но не отличается для db)