Как использовать LDAP в ASP.NET Boilerplate (бесплатный шаблон запуска)

Я хотел бы интегрировать аутентификацию через Active Directory в свое приложение .net Core, используя бесплатную версию шаблона запуска Boilerplate. Я следовал инструкциям в документации, таким как установка пакета Abp.Zero.Ldap, создание класса LdapAuthenticationSource и внедрить зависимость, например:

[DependsOn(typeof(AbpZeroLdapModule))]
public class MyApplicationCoreModule : AbpModule
{
    public override void PreInitialize()
    {
        Configuration.Modules.ZeroLdap().Enable(typeof (MyLdapAuthenticationSource));    
    }

    ...
}

Нужно ли определять какие-либо пользовательские настройки с помощью класса, реализующего интерфейс ILdapSettings? Или создайте любой класс или файлы, ссылающиеся на эта папка?


person Wei Minn    schedule 04.12.2017    source источник


Ответы (1)


.NET Core 2.0

Инструкции могут не работать, так как расширение аутентификации LDAP/AD для .NET Core еще не реализовано.

Отслеживайте эту функцию: https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2755

.NET Framework 4.6.1

Установив пакет Abp.Zero.Ldap, вы уже ссылаетесь на этот модуль (перемещенный здесь).

Как указано в разделе LDAP/Active Directory > Настройки:

LdapAuthenticationSource ожидает ILdapSettings в качестве аргумента конструктора. Этот интерфейс используется для получения настроек LDAP, таких как домен, имя пользователя и пароль, для подключения к Active Directory. Реализация по умолчанию (класс LdapSettings) получает эти настройки от диспетчера настроек.

Если вы работаете с менеджером настроек, то нет проблем. Вы можете изменить настройки LDAP с помощью API диспетчера настроек. Если вы хотите, вы можете добавить начальные/исходные данные в базу данных, чтобы включить аутентификацию LDAP по умолчанию.

Итак, вам не нужно создавать класс, реализующий ILdapSettings. Преимущество использования Диспетчера настроек заключается в том, что он сохраняет настройки в вашей базе данных. Пользовательский класс предназначен для получения его из другого места или для его жесткого кодирования (полезно, если вы просто хотите попробовать, но в производственной/git-коммите это недопустимо).

Для начала вы можете добавить исходные данные для своего хоста в DefaultSettingsCreator с LdapSettingNames:

public void Create()
{
    // ...

    // LDAP
    AddSettingIfNotExists(LdapSettingNames.IsEnabled, "false");
    // AddSettingIfNotExists(LdapSettingNames...
}
person aaron    schedule 04.12.2017
comment
Благодарю за ваш ответ. Я использовал шаблон Core 2.0 с полной платформой .NET Framework for Target. Не знаю, что это значит, но больше нет ошибки ссылки во время внедрения зависимостей, которую я получил при использовании шаблона Core 2.0 с .NET Core (Cross-Platform) для Target Framework. - person Wei Minn; 05.12.2017
comment
Да, см. раздел ASP.NET Core и .NET Core. - person aaron; 05.12.2017
comment
Спасибо! я попробую! - person Wei Minn; 05.12.2017
comment
Это решено? У меня это работает, но как я могу проверить своего пользователя в AD, не передавая его пароль? спасибо - person Bruno; 20.12.2018