我正在尝试更新我的代码,以从必须使用LDAPS调用的AD获取用户信息,而不是LDAP。
目前我们正在使用System.DirectoryServices.dll,但我找不到使用LDAPS来命中AD的方法,只有LDAP。
下面是我们如何定义条目和搜索对象的。
"
If (ADactive) Then
Dim Entry As New System.DirectoryServices.DirectoryEntry(ADFullPath, Username, Password)
Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry)
Searcher.SearchScope = DirectoryServices.SearchScope.Subtree
Try
Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne
Success = Not (Results Is Nothing)
rtn_error = ""
Catch ex As Exception
Success = False
rtn_error = ex.Message
End Try
ADUserName = Username
ADPassword = Password
End If
Return Success
"
我已经验证了这段代码可以击中我们的AD,我可以使用我的凭据登录。ADFullPath是
LDAP://XXXXXX
其中"XXXXX"是我的AD服务器
我的搜索器对象是否需要设置不同的属性以启用LDAPS?
需要在LDAP路径中指定LDAPS端口(636),如下所示:
LDAP://XXXXXX:636
。
但是,此处适用于SSL的所有相同规则。这只在以下情况下有效:
- SSL证书上的域名与您正在使用的域名匹配。因此,如果您使用
LDAP://example.com:636
,那么证书必须颁发给example.com(或具有主题替代名称)。 - 证书由客户端计算机信任的机构颁发。如果证书是自签署的,它将会失败。