我希望直接从我的C#代码查询LDAP,以执行Oracle TNS主机名的LDAP查找,以获取连接字符串.这通常存储在tnsnames.ora中,我的组织使用LDAP(通过ldap.ora)使用Active Directory从LDAP服务器解析主机名.
但是,我在我的C#应用程序中使用ODP.NET,Managed Driver Beta(Oracle.ManagedDataAccess.dll),它不支持我在前面提到的Oracle forum reply指向的release notes中提到的LDAP.这就是我希望直接从C#查询LDAP的原因.
我找到了使用DirectoryEntry和DirectorySearcher执行此操作的方法here,但我不知道将什么作为参数添加到DirectorySearcher.我可以访问ldap.ora,其格式如下:
# LDAP.ORA Configuration
# Generated by Oracle configuration tools.
DEFAULT_ADMIN_CONTEXT = “dc=xx,dc=mycompany,dc=com”
DIRECTORY_SERVERS = (ldap_server1.mycompany.com:389:636,ldap_server2.mycompany.com:389:636,…) DIRECTORY_SERVER_TYPE = OID
解决方法
string directoryServer = "ldap_server1.mycompany.com:389"; string defaultAdminContext = "dc=xx,dc=com"; string oracleHostEntryPath = string.Format("LDAP://{0}/cn=OracleContext,{1}",directoryServer,defaultAdminContext); var directoryEntry = new DirectoryEntry(oracleHostEntryPath) {AuthenticationType = AuthenticationTypes.None}; var directorySearcher = new DirectorySearcher(directoryEntry,"(&(objectclass=orclNetService)(cn=ABCDEFG1))",new[] { "orclnetdescstring" },SearchScope.Subtree); string oracleNetDescription = Encoding.Default.GetString(des.FindOne().Properties["orclnetdescstring"][0] as byte[]);
原文地址:https://www.jb51.cc/csharp/244510.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。