Добавление абстракции аутентификации .NET для входа в Google в решение .NET Core 1.x - PullRequest
0 голосов
/ 21 февраля 2019

В ответ на отключение Google+ я меняю решение .NET Core 1.x для использования аутентификации через Google Sign-in.

Microsoft не выпустит патч для .NET Core 1.xно миграция для Microsoft.Owin может быть адаптирована для ASP.NET Core 1.x.Итак, я сослался на Microsoft.AspNetCore.Owin и Microsoft.Owin.Security.Google.

В моем (ASP.NET Core) Startup.cs у меня есть это:

app.UseOwin(setup => setup(next =>
{
    var builder = new AppBuilder();

    var aspNetCoreLifetime = (IApplicationLifetime)app.ApplicationServices.GetService(typeof(IApplicationLifetime));

    var owinAppProperties = new AppProperties(builder.Properties)
    {
        OnAppDisposing = aspNetCoreLifetime?.ApplicationStopping ?? CancellationToken.None,
        DefaultApp = next
    };

    builder.Properties.Add("host.AppName", app.ApplicationServices.GetApplicationUniqueIdentifier());
    builder.SetDefaultSignInAsAuthenticationType("Google");

    void Conf(IAppBuilder appBuilder) => appBuilder.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions
    {
        ClientId = "your_key",
        ClientSecret = "your_secret"
    });

    Conf(builder);

    return builder.Build<Func<IDictionary<string, object>, Task>>();
}));

Однако вво время выполнения я получаю следующую ошибку:

InvalidOperationException: не настроен обработчик аутентификации для обработки схемы: Google

Я считаю, что настройка схемы GoogleОбходит ASP.NET Identity, так как я использую OWIN AppBuilder для его настройки, и эти два сосуществуют параллельно и не совместимы.

Есть ли что-то, чего мне не хватает?

...