除非包含LDAP.ORA,否则ODP.NET托管数据访问LDAP配置无法正常工作

时间:2016-03-22 20:08:32

标签: .net oracle odp.net odp.net-managed

出于某种原因,在尝试使用LDAP连接到Oracle时,我必须在.NET项目中包含LDAP.ORA文件。根据我对使用Oracle.ManagagedDataAccess nuget包的理解,我应该能够包含web.config中的所有内容。 Documentation from Oracle is located here和有用的walk through is provided here。我猜我的一个配置属性略有偏差,但我还没有能够追踪它。任何帮助将非常感激!

Oracle配置部分

  <oracle.manageddataaccess.client>
    <version number="*">
      <LDAPsettings>
        <LDAPsetting name="DIRECTORY_TYPE" value="OID" />
        <LDAPsetting name="DEFAULT_ADMIN_CONTENT" value="dc=mycompany,dc=net"/>
        <LDAPsetting name="DIRECTORY_SERVERS" value="(myoid.mycompany.net:1389:1636)" />
      </LDAPsettings>
      <settings>
        <setting name="NAMES.DIRECTORY_PATH" value="(LDAP)"/>
        <setting name="NAMES.DEFAULT_DOMAIN" value="mycompany"/>
      </settings>
    </version>
  </oracle.manageddataaccess.client>

Oracle连接字符串

<add name="MyDatabase" providerName="Oracle.ManagedDataAccess.Client" connectionString="Data Source=MyDatabase; User Id=MyUser; Password=MyPassword;" />

连接代码

private DbConnection GetConnection()
{
    var connectionStringSettings = ConfigurationManager.ConnectionStrings["MyDatabase"];
    var connection = new OracleConnection(connectionStringSettings.ConnectionString);
    connection.Open();
    return connection;
}

1 个答案:

答案 0 :(得分:0)

我认为

<LDAPsetting name="DIRECTORY_TYPE" value="OID" />
<LDAPsetting name="DEFAULT_ADMIN_CONTENT" value="dc=mycompany,dc=net"/>

必须替换为

<LDAPsetting name="DIRECTORY_SERVER_TYPE" value="OID" />
<LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="dc=mycompany,dc=net"/>

我不确定,但我假设您的默认上下文为dc=mycompany,dc=net,那么您的NAMES.DEFAULT_DOMAIN必须为mycompany.net