ASP.NET 通过 LDAP over SSL (LDAPS) 的样板认证

ASP.NET Boilerplate Authentication via LDAP over SSL (LDAPS)

我无法确认 ASP.NET 样板是否支持使用 Active Directory 的 LDAP over SSL 协议进行身份验证。 documentation 声明支持 LDAP 协议,但没有提及使用 LDAPS 或类似程序的远程身份验证机制。

我假设 ASP.NET Boilerplate 使用 System.DirectoryServices 命名空间及其组件来处理 LDAP 身份验证,如果是这样,最好尝试更改 Boilerplate 的代码以通过以下方式支持 LDAPS做一些类似于 this 的事情,或者我应该将 LDAPS 实现分离到自定义 class 中并完全避免使用 Boilerplate 的 LDAP?

具体来说,Abp Zero Ldap 使用来自 System.DirectoryServices.AccountManagement 命名空间

PrincipalContext

默认调用principalContext.ValidateCredentials()ContextOptions.Negotiate与AD服务器通信

https://github.com/aspnetboilerplate/aspnetboilerplate/blob/14e41c9ce2d902b2661fca63f4074943e9036c5b/src/Abp.Zero.Ldap/Ldap/Authentication/LdapAuthenticationSource.cs#L98

您可以尝试覆盖 ValidateCredentials() 并将 ContextOptiona.Negotiate | Context options.SecureSocketLayer 传递给 principalContext.ValidateCredentials()

查看更多https://docs.microsoft.com/en-us/dotnet/api/system.directoryservices.accountmanagement.contextoptions

仍然会为您推荐 Abp Zero Ldap 模块,因为它与 Abp Zero 用户登录流程很好地集成。

如果您仍想使用 LdapConnection 与 AD 服务器进行验证,您可以通过从 LdapAuthenticationSource<TTenant, TUser>

扩展来创建自己的 ldap 身份验证源