2

我有一个使用 Entity Framework 4.3 连接到 Oracle 数据库的 ASP.NET 4.0 应用程序。开发环境上的连接不是问题,因为我们使用标准方法。连接字符串由 Visual Studio 生成。

问题是在生产和验收环境中我们必须使用 LDAP。我已经验证了连接,并且可以使用 Oracle 的 SQL Developer 中的 LDAP 进行连接。

我需要有关 web.config 中连接字符串语法的帮助。它应该是什么样子?我找不到任何示例,并且在生产和验收方面,我没有 Visual Studio 来查看它是否可以自动生成某些东西。

更新:
我需要语法将连接到本地 Oracle Express 的连接字符串更改为使用 LDAP 的连接字符串

<connectionStrings>
    <add name="VoccDbContext" connectionString="metadata=res://*/Entities.Vocc.VoccModel.csdl|res://*/Entities.Vocc.VoccModel.ssdl|res://*/Entities.Vocc.VoccModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=localhost:1521;PASSWORD=somePassKey;PERSIST SECURITY INFO=True;USER ID=someUser&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
4

3 回答 3

3

回答别人是否需要。解决方法比较简单:

LDAP.ORA 文件必须使用正确的 LDAP 参数进行修改

DIRECTORY_SERVERS=(tnsnames.somesite.org:389:636)
DEFAULT_ADMIN_CONTEXT="dc=site,dc=com"
DIRECTORY_SERVER_TYPE=OID

并且比连接字符串类似于没有 LDAP 的情况

 <connectionStrings>
    <add name="VoccDbContext" connectionString="metadata=res://*/Entities.Vocc.VoccModel.csdl|res://*/Entities.Vocc.VoccModel.ssdl|&#xD;&#xA;        res://*/Entities.Vocc.VoccModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=sameDbName;PASSWORD=somePass;USER ID=someUser;&quot;"         providerName="System.Data.EntityClient" />
</connectionStrings>
于 2012-07-27T10:01:20.207 回答
0

U还需要在oraclehome文件夹/network/admin中有一个sqlnet.ora文件,内容如下

# sqlnet.ora Network Configuration File

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (LDAP,TNSNAMES,EZCONNECT)

和具有以下内容的 LDAP.ora

DEFAULT_ADMIN_CONTEXT = "dc=world"
DIRECTORY_SERVERS = (server1.x.com:389:636, server2.x.com:389:636)
DIRECTORY_SERVER_TYPE = OID

ldap.ora 帮助

于 2014-11-18T13:46:06.980 回答
0

如果您使用“/”作为用户名并将密码留空,它将更改为 Windows 身份验证。

这是关于使用 Windows 身份验证连接到 Oracle 数据库的 MSDN 文章,这个问题解决了用户无法使用 ODP.NET 连接到 Oracle 数据库及其修复的问题。

这是我的 App.Config 连接字符串之一使用 Windows 身份验证连接的样子:

 <connectionStrings>
      <add name="EntityFrameworkEntities" connectionString="metadata=res://*/EntityFrameworkModel.csdl|res://*/EntityFrameworkModel.ssdl|res://*/EntityFrameworkModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=EntityFrameworkDatabase;PASSWORD=;USER ID=/&quot;" providerName="System.Data.EntityClient"/>
 </connectionStrings>
于 2012-07-19T11:40:19.220 回答