如何在ASP.NET Boilerplate中使用LDAP(免费启动模板)

时间:2017-12-04 07:17:52

标签: asp.net active-directory ldap asp.net-core-2.0 aspnetboilerplate

我想使用Boilerplate的免费启动模板版本在我的.net Core应用程序中通过Active Directory集成身份验证。我按照documentation中的说明进行操作,例如安装Abp.Zero.Ldap包,创建LdapAuthenticationSource类,并注入依赖项,如:

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

    ...
}

我是否需要使用实现ILdapSettings接口的类来定义任何自定义设置?或者创建引用this folder的任何类或文件?

1 个答案:

答案 0 :(得分:0)

.NET Core 2.0

说明可能不起作用,因为.NET Core的LDAP / AD auth扩展尚未实现。

跟踪此功能:https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2755

.NET Framework 4.6.1

通过安装Abp.Zero.Ldap软件包,您已经引用该模块(已移动here)。

LDAP/Active Directory > Settings中所述:

  

LdapAuthenticationSource期望 ILdapSettings 作为构造函数参数。此接口用于获取LDAP设置,如域,用户名和密码,以连接到Active Directory。默认实现( LdapSettings 类)从设置管理器获取这些设置。

     

如果您使用设置管理器,那么没问题。您可以使用setting manager API更改LDAP设置。如果需要,可以将初始/种子数据添加到数据库以默认启用LDAP身份验证。

因此,您不需要创建实现ILdapSettings的类。使用设置管理器的好处是它将设置存储在数据库中。自定义类用于从其他地方获取它或对其进行硬编码(如果您只是想尝试,则很有用,但在生产/ git提交中是一个很大的禁忌)。

首先,您可以使用DefaultSettingsCreatorLdapSettingNames中为您的主机添加种子数据:

public void Create()
{
    // ...

    // LDAP
    AddSettingIfNotExists(LdapSettingNames.IsEnabled, "false");
    // AddSettingIfNotExists(LdapSettingNames...
}