通过 LDAP over SSL (LDAPS) 的 ASP.NET 样板身份验证

标签 asp.net active-directory ldap aspnetboilerplate

我无法确认 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服务器通信

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

您可以尝试覆盖 ValidateCredentials()并通过 ContextOptiona.Negotiate | Context options.SecureSocketLayerprincipalContext.ValidateCredentials()

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

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

如果您仍想使用 LdapConnection 与 AD 服务器进行验证,您可以通过扩展 LdapAuthenticationSource<TTenant, TUser> 创建自己的 ldap 身份验证源

关于通过 LDAP over SSL (LDAPS) 的 ASP.NET 样板身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261052/

相关文章:

file - 如何在PowerShell中将所有Active Directory计算机读入数组?

ubuntu - 在 ubuntu 上安装 openssh-LPK 补丁

oracle - 如何使用 Oracle DBMS_LDAP 执行大型(大于 Sizelimit)LDAP 查询

.net - 如何在 ColdFusion 中加速从 .NET AD 检索数据?

c# - asp.net中web应用程序需要的调度作业思路

xml - Active Directory - 强制执行额外的身份验证

Asp.net 检测 iis 是否具有域的 https 证书?

azure - 将 AAD 应用程序添加为安全组的成员

c# - 使用 IIS 的基本身份验证在 WCF 服务中获取用户名

asp.net - Web 应用程序匿名访问时密码保护 Elmah