我无法确认 ASP.NET Boilerplate 是否支持使用 Active Directory 的 LDAP over SSL 协议(protocol)进行身份验证。 documentation声明支持 LDAP 协议(protocol),但没有提及使用 LDAPS 或类似过程的远程身份验证机制。
我假设 ASP.NET Boilerplate 使用 System.DirectoryServices
命名空间及其组件来处理 LDAP 身份验证,如果是这样,最好尝试更改 Boilerplate 的代码以支持 LDAPS通过做类似于 this 的事情或者我应该将 LDAPS 实现分离到自定义类中并完全避免使用 Boilerplate 的 LDAP?
最佳答案
具体来说,Abp Zero Ldap 使用PrincipalContext
来自 System.DirectoryServices.AccountManagement
命名空间
默认情况下,它调用 principalContext.ValidateCredentials()
与 ContextOptions.Negotiate
与AD服务器通信
您可以尝试覆盖 ValidateCredentials()
并通过 ContextOptiona.Negotiate | Context options.SecureSocketLayer
至 principalContext.ValidateCredentials()
仍然会为您推荐 Abp Zero Ldap 模块,因为它与 Abp Zero 用户登录流程很好地集成。
如果您仍想使用 LdapConnection 与 AD 服务器进行验证,您可以通过扩展 LdapAuthenticationSource<TTenant, TUser>
创建自己的 ldap 身份验证源
关于通过 LDAP over SSL (LDAPS) 的 ASP.NET 样板身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261052/