我被要求公开一个用于通过 Intranet 管理 Active Directory 用户的 Web 服务。我被告知 LDAP 被视为一个安全漏洞并且不应该被使用。
鉴于此约束,我设法通过 ADSI 与 DirectoryEntry 对象进行连接,如下所示:
DirectoryEntry de = new DirectoryEntry();
de.Path = "WinNT://TheDomain.local";
de.Username = "NTUser1";
de.Password = "pwdpwdpwd2";
我可以遍历此 DirectoryEntry 的子项来获取用户。在用户上,我可以看到这些基本属性:UserFlags、MaxStorage、PasswordAge、PasswordExpired、LoginHours、FullName、Description、BadPasswordAttempts、LastLogin、HomeDirectory、LoginScript、Profile、HomeDirDrive、Parameters、PrimaryGroupID、Name、MinPasswordLength、MaxPasswordAge、MinPasswordAge、PasswordHistoryLength , AutoUnlockInterval, LockoutObservationInterval, MaxBadPasswordsAllowed, objectSid。
有许多在 Active Directory MMC 中可见的用户属性不能从 DirectoryEntry 对象访问,包括:LastName、NameSuffix、Department 等...
这些其他属性都记录在 msdn 中,由 IADsUser ( http://msdn.microsoft.com/en-us/library/aa746340%28VS.85%29.aspx ) 公开。
1) LDAP 实际上是一个易受攻击的协议吗?比上面显示的 ADSI (WinNT) 连接更重要吗?为此目的,LDAP 似乎很常见。
2)如何检索/设置用户的这些其他属性?
TIA