忽略使用C#(ODP.Net)配置Oracle网络加密
我想使用ODP.Net和C#并使用加密连接连接到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
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="cn=CertDN")))" />
</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>