我正在使用System.DirectoryServices.Protocols
函数来查询openldap目录。
openldap目录正在使用密码策略覆盖。
如果我绑定到目录,则服务器可能会返回可能包含密码到期警告的控件。
如何在c#中获取绑定响应?
System.DirectoryServices.Protocols.Bind
返回void
。
查询用户pwdChangedTime
,检索pwdPolicySubentry
中指示的策略进行数学运算以警告用户密码过期似乎不是一种好方法。
非常感谢任何帮助,
答案 0 :(得分:2)
不幸的是,你无法通过绑定操作来完成它。 S.DS.P是Winldap32顶部的薄层,它不识别在绑定操作上发回的任何控件。在去年我走了几条道路,开始使用反射来操纵S.DS.P内部类并自己调整到Winldap32并最终由于Winldap32的限制而缩短。有一个由Novell编写的ldap库,它是它自己的纯CLR实现。这些天我不确定它是否保持良好状态。您唯一的另一种选择是在openldap客户端库上编写自己的.net库。
另外一个。在服务器端应用程序中使用带有S.DS.P的TLS将导致S.DS.P在某些条件下处理TLS响应时进入无限循环。解决方法是在端口636上使用直接SSL。