.net 如何从LDAP目录中提取tnsname
我一直在尝试查询LDAP目录服务器以检索tnsnames条目。我有下面的代码在工作,但闻起来不对劲。这是因为它是错误的,还是因为查询ldap涉及几个级别的间接寻址.net 如何从LDAP目录中提取tnsname,.net,ldap,.net,Ldap,我一直在尝试查询LDAP目录服务器以检索tnsnames条目。我有下面的代码在工作,但闻起来不对劲。这是因为它是错误的,还是因为查询ldap涉及几个级别的间接寻址 let identifier = LdapDirectoryIdentifier(server, port) use connection = new LdapConnection (identifier) connection.AuthType <- AuthType.Anonymous let req
let identifier = LdapDirectoryIdentifier(server, port)
use connection = new LdapConnection (identifier)
connection.AuthType <- AuthType.Anonymous
let request = System.DirectoryServices.Protocols.SearchRequest(defaultAdminContext, "cn=" + sid, SearchScope.OneLevel, "orclnetdescstring")
let response = connection.SendRequest request :?> SearchResponse
Seq.init response.Entries.Count (fun i -> response.Entries.[i])
|> Seq.collect (fun entry ->
let value = entry.Attributes.["orclnetdescstring"]
Seq.init value.Count (fun i -> value.[i])
|> Seq.map (fun v -> Some (v :?> string))
)
let identifier=LdapDirectoryIdentifier(服务器、端口)
使用连接=新的LdapConnection(标识符)
connection.AuthType SearchResponse
Seq.init response.Entries.Count(乐趣i->response.Entries.[i])
|>Seq.collect(有趣的条目->
let value=entry.Attributes。[“orclnetdescstring”]
Seq.init value.Count(乐趣i->value.[i])
|>Seq.map(乐趣v->Some(v:?>字符串))
)
我希望有一个简单的调用,基本上可以“查询目录并返回结果”,但要读取真正的值,我似乎需要做很多“工作”。一旦客户端连接到目录服务器,客户端就可以发出请求并读取响应。请求采用LDAP操作的形式,如绑定、搜索、添加、修改、删除等 当目录服务器接受连接时,该连接(或LDAP会话,如果您愿意)具有匿名标识()。根据目录服务器的配置和请求的类型,客户端可能需要将连接绑定到授权标识—这是通过绑定请求完成的,绑定请求可以是“简单”类型或SASL类型。与directory server管理员进行对话,以确定客户端是否必须将连接绑定到授权标识-管理员可能允许某些请求而不进行身份验证,但这通常是一种不好的做法,也不常见 搜索数据需要以下参数:
- “搜索基础”或基础对象
- “搜索范围”,仅为基础、基础对象下一级或基础对象下的整个子树
- “搜索筛选器”,目录服务器使用它从候选项列表中选择匹配项以返回到客户端
- 要返回的属性列表(客户端可以使用特殊属性“1.1”仅获取条目可分辨名称,这有助于确定条目是否存在)
最后,你的问题的答案是‘是的,在阅读条目之前还有一些事情要做’。一个好的API将把“东西”的数量减少到一个沉闷的咆哮 你能用你的语言、操作系统和使用的目录重新标记你的问题吗?我添加了一个.net标记,但我不知道使用的目录。我需要知道吗?我认为LDAP是一种标准