используя UseGoogleAuthentication

Я пытаюсь создать приложение с Google в качестве поставщика удостоверений в ядре asp.net.

Я использовал загрузочное веб-приложение, инициализированное инструментом dotnet cli:

dotnet new --type web

Я добавил Microsoft.AspNetCore.Authentication.Google nuget в свой проект.json.

Я создал приложение Google и clientid/secret и добавил промежуточное ПО Google:

app.UseGoogleAuthentication(new GoogleOptions{
                ClientId = "<clientId>",
                ClientSecret = "<clientSecret>"
            });

Но затем, следуя приведенному здесь руководству, следующая строка должна возвращать коллекцию loginProvider с одним элементом:

SignInManager.GetExternalAuthenticationSchemes()

Но все, что я получаю, это пустой IEnumerable. Я пытался следовать исходному коду, но не смог найти, что я делаю неправильно (плохая конфигурация идентификатора клиента, что-то пропущено в функциях Startup Configure(Service)).

Как заставить SignInManager.GetExternalAuthenticationSchemes() вернуть google loginProvider?


person Simon Bergot    schedule 04.07.2016    source источник
comment
Странно, это не имеет ничего общего с идентификаторами, оно не будет проверяться, даже если мы поместим туда какое-то значение. Вы используете тот же код, что и созданный dotnet new, верно? я так же сделал и работает без проблем   -  person Anuraj    schedule 05.07.2016
comment
Спасибо. Я наконец-то понял. Смотрите мои ответы.   -  person Simon Bergot    schedule 10.07.2016


Ответы (1)


После некоторых тестов я понял это. Моя ошибка заключалась в том, что я использовал UseGoogleAuthentication после UseMvc. Перемещение его непосредственно перед исправляет мою проблему.

Я думаю, этот пост объясняет это:

Страница исключения разработчика пуста, если добавлена ​​в IApplicationBuilder после MVC

person Simon Bergot    schedule 10.07.2016
comment
Я думал, что эта проблема была системной ошибкой в ​​Core при тестировании VS2017 RC2! Какое простое решение. Я переместил свой код промежуточного программного обеспечения app.UseFacebookAuthentication(...) над моим кодом app.UseMvc(routes =›..., и он отлично работает, спасибо! - person user3777549; 17.03.2017