我正在使用 .NET 3.5 并构建了一个成功的 LDAP 查找功能来查询 Sun LDAP 服务器上的用户数据。
但是,有一个特定的记录(到目前为止)在查找时失败了。
当调用 Findone 方法时,我收到“年、月和日参数描述无法表示的日期时间”错误。
现在,特别是使用 LDAP 浏览器查看记录,比如 Softerra,我可以看到该特定记录缺少特定属性(baLastupdate 字段)中的数据。
该字段属于日期/时间类型,所以我知道我收到了一个错误,因为 NULL 字段没有被正确解释为日期/时间字段。
我的问题是:如何拦截此错误以使其不会崩溃,因此如果该字段为空白,则不会在我身上崩溃。我没有在任何地方定义 LDAP 系统将提供哪些字段,也没有定义存在哪些类型的字段。
我的 LDAPconnection 设置如下
Public Class LDAPDirectorySearcher
Private Shared LDAPDirEntry As System.DirectoryServices.DirectoryEntry
Private Shared LDAPDirSearcher As DirectorySearcher
Public Shared Function DirSearcherSetup() As DirectorySearcher
Try
LDAPDirEntry = New DirectoryEntry
LDAPDirEntry.Path = "LDAP://aaaa.bbbbb.ccccc.com/ou=people"
LDAPDirEntry.Username = "yyyyyyyyyyy"
LDAPDirEntry.Password = "xxxxxx"
LDAPDirEntry.AuthenticationType = AuthenticationTypes.FastBind
LDAPDirSearcher = New DirectorySearcher(LDAPDirEntry)
LDAPDirSearcher.CacheResults = True
Catch ex As Exception
End Try
Return LDAPDirSearcher
End Function
身份验证或设置没有任何问题(它适用于 +100K 其他记录)但是当这个日期/时间字段中没有数据时,它会以某种方式崩溃。我想克服这个 NULL 字段。