Identity Server 4 CORS не настроен - PullRequest
       45

Identity Server 4 CORS не настроен

0 голосов
/ 23 ноября 2018

Я поместил свой IS4 на сервер и позвал его http://test.myis4.com. Теперь я пытаюсь войти с угловым приложением против него, однако CORS продолжает блокировать его.Угловой клиент обслуживается приложением MVC Core и работает на порту http://localhost:5002.Я попытался сделать это с моего локального хоста, запустив его на этом порту.

На сервере IS4 я попытался добавить на клиенте следующее:

new Client {
    // code is omitted
    AllowedCorsOrigins = new List<string>() { "http://localhost:5002" }
}

С вышеупомянутым я все ещеполучить ошибку CORS, затем я попытался добавить ее в директиву services:

var cors = new DefaultCorsPolicyService(null)
{
    AllowedOrigins = { "http://localhost:5002" }
};
services.AddSingleton<ICorsPolicyService>(cors);
services.AddIdentityServer()
//rest omitted

Выше все еще выдает ту же ошибку CORS, моя последняя попытка была добавить ее через конструктор приложений как таковой:

app.UseCors(builder => builder.WithOrigins("http://localhost:5002").AllowAnyHeader());
app.UseIdentityServer();
//rest omitted

С этой последней попыткой все равно ничего не вышло.Я не совсем уверен, что я делаю не так в данный момент.Есть предложения?

1 Ответ

0 голосов
/ 27 ноября 2018

Во втором блоке кода, который вы показали - вам нужно сначала AddIdentityServer(), а затем добавить службу Cors Policy, и вы также можете сделать это сразу после добавления сервера Identity в службы.Примерно так:

services.AddIdentityServer(options =>
        {
            // .. if you need something in general (can go without the options)
        })
        .AddCorsPolicyService<YOUR_IMPLEMENTATION_OF_ICorsPolicyService>()
        // rest omitted

Это потому, что AddIdentitiyServer() перезаписывает добавление службы CORS - Код .

...