AspNetBoilerplate Core MVC Пользовательский логин-провайдер - PullRequest
1 голос
/ 28 октября 2019

Мне нужно иметь возможность аутентифицировать / зарегистрировать пользователя с помощью веб-входа с использованием настраиваемого поставщика.

Я попытался добавить настраиваемый поставщик проверки подлинности, используя ссылку ниже.

Внешняя аутентификация

Я создал AlwaysTrueExternalAuthSource.cs и добавил его в мой основной проект.

namespace Project.Authorization.AlwaysTrue
{
    public class AlwaysTrueExternalAuthSource : DefaultExternalAuthenticationSource<Tenant, User>, ITransientDependency
    {
        public override string Name => "AlwaysTrueExternalAuthSource";

        public override Task<bool> TryAuthenticateAsync(string userNameOrEmailAddress, string plainPassword, Tenant tenant)
        {
            return Task.FromResult(true);
        }
    }
}

Затем следующая строка в основном модуле PreInitialize

Configuration.Modules.Zero().UserManagement.ExternalAuthenticationSources.Add<AlwaysTrueExternalAuthSource>();

Тогда документация становится немного расплывчатой. Я заметил, что представление реестра содержит следующее.

<input type="hidden" id="IsExternalLogin" name="IsExternalLogin" value="@Model.IsExternalLogin.ToString()" />
            <input type="hidden" id="ExternalLoginAuthSchema" name="ExternalLoginAuthSchema" value="@Model.ExternalLoginAuthSchema" />*@

Я предполагал, что их установка вручную включит новый источник аутентификации

  <input type="hidden" id="IsExternalLogin" name="IsExternalLogin" value="@true" />
            <input type="hidden" id="ExternalLoginAuthSchema" name="ExternalLoginAuthSchema" value="AlwaysTrueExternalAuthSource" />

Однако это не удалось с ошибкой:

Abp.Runtime.Validation.AbpValidationException: Method arguments are not valid! See ValidationErrors for details.
   at Abp.Runtime.Validation.Interception.MethodInvocationValidator.ThrowValidationError() in D:\Github\aspnetboilerplate\src\Abp\Runtime\Validation\Interception\MethodInvocationValidator.cs:line 118

Может кто-нибудь помочь объяснить, где я здесь не так, пожалуйста.

Я должен объяснить, что провайдер предоставил мне набор API, которые я могу запросить с помощью почтового запроса. Таким образом, конечной целью является переопределение методов регистрации и входа в систему для аутентификации через эту стороннюю службу.

...