2016-03-22 25 views
0

由於某種原因,在嘗試使用LDAP連接到Oracle時,我必須在我的.NET項目中包含LDAP.ORA文件。根據我對使用Oracle.ManagagedDataAccess Nuget包的理解,我應該能夠包含web.config中的所有內容。 Documentation from Oracle is located here和有用的walk through is provided here。我猜測我的一個配置屬性稍微偏離了一點,但我一直無法追蹤它。任何幫助將非常感激!ODP.NET託管數據訪問LDAP配置不起作用,除非包含LDAP.ORA

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; 
} 
+0

當ODP.NET託管驅動程序使用LDAP來解析TNS別名時存在一個錯誤,請參閱:http://stackoverflow.com/questions/30905910/odp-net-managed-library-does-resolve-alias-但是-32位庫-do/30920849也許這與你的問題有關。 –

回答

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