忽略使用C#(ODP.Net)配置Oracle网络加密

忽略使用C#(ODP.Net)配置Oracle网络加密,c#,oracle,encryption,odp,C#,Oracle,Encryption,Odp,我想使用ODP.Net和C#并使用加密连接连接到Oracle数据库。 目前的目标数据库设置为同时接受加密和未加密连接。 不幸的是,即使配置为只接受加密连接,我的单元测试也总是不加密地连接到数据库 我的代码如下所示: OracleConnection myConnection = new OracleConnection("Data Source=MyDataSource;User Id=userid; Password = ***"); myConnection.Open(); OracleC

我想使用ODP.Net和C#并使用加密连接连接到Oracle数据库。 目前的目标数据库设置为同时接受加密和未加密连接。 不幸的是,即使配置为只接受加密连接,我的单元测试也总是不加密地连接到数据库

我的代码如下所示:

OracleConnection myConnection = new OracleConnection("Data Source=MyDataSource;User Id=userid; Password = ***");
myConnection.Open();

OracleCommand myStoredProcedureCall = new OracleCommand();
myStoredProcedureCall.Connection = myConnection;

//Some calls to an Oracle DB
我的app.config中有以下配置

<oracle.manageddataaccess.client>
  <version number="*">
    <dataSources>
      <dataSource alias="MyDataSource" descriptor="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=port)))(CONNECT_DATA=(SID=SID)(SERVER=DEDICATED))(SECURITY=(SSL_VERSION=1.2)(SSL_SERVER_CERT_DN=&quot;cn=CertDN&quot;)))" />
    </dataSources>
    <settings>
      <setting name="TraceLevel" value="7" />
      <setting name="TraceOption" value="0" />
      <setting name="TraceFileLocation" value="C:\Temp" />

      <setting name="TNS_ADMIN" value="<projectDir>\ExternalRefs\network\admin\productive" />
    </settings>
  </version>
</oracle.manageddataaccess.client>
根据我的跟踪日志,读取该文件及其配置值

据我所知,我做了一切来强制加密连接,但仍然 它不会加密连接。但是也没有错误,但是单元测试只是使用了一个未加密的连接,忽略了我的配置

有两件事不是标准的: a) 由于网络限制,我不允许从在线源安装requires NuGet软件包。我从Oracle下载它们,然后从文件系统安装,但仍然使用NuGet Package Manager b) 《安装指南》提到了必须修改的以下条目:

<configuration>
  <connectionStrings>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=oracle_user;Password=oracle_user_password;Data Source=oracle" />
  </connectionStrings>
</configuration>

当我在单元测试中提供硬编码的连接字符串时,假设不需要它,我将这个字符串保持不变

有趣的是,sqlnet.ora中的配置值似乎都没有经过验证。 如果我配置了一个不可抗拒的密码(例如BlaBla而不是AES256),仍然没有错误。 此外,我还尝试在sqlnet.ora中使用不同的拼写(大写而不是小写),因为我发现的每个示例似乎都使用其他拼写


如果您知道我可以进一步检查哪些内容,我们将不胜感激:-)

请查看文档:您也可以在.NET配置文件中定义加密算法。不需要在
sqlnet.ora
fileThx中定义它,这是您的提示。配置app.config中的所有内容是我尝试的第一件事,我有相同的行为:没有错误,但也没有加密。找到解决方案了吗?
<configuration>
  <connectionStrings>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=oracle_user;Password=oracle_user_password;Data Source=oracle" />
  </connectionStrings>
</configuration>