如何使用oracle Wallet和.net web api

时间:2017-04-09 14:41:05

标签: .net oracle asp.net-web-api wallet

我正在使用oracle wallet从我的.net Web API 2代码登录到Oracle 11数据库实例。

问题是除非我在连接字符串中指定用户ID和密码,否则oracle wallet抛出

Error MessageORA-01017: invalid username/password; logon denied

没有理由使用钱包! 我用Google搜索了很多,但没有任何可能的解决方案。

SQLNET.ORA

sqlnet.authentication_services=(NTS)
ssl_client_authentication=false
WALLET_LOCATION=
(SOURCE=
 (METHOD=FILE)
 (METHOD_DATA=
     (DIRECTORY=c:\temp\wallet)
 )
)

tnsnames.ora中

source= (DESCRIPTION=(ADDRESS=(PROTOCOL=<PROTOCOL>)(HOST=<server hostname>)PORT=<PORT>))(CONNECT_DATA=(SERVICE_NAME=<Global DB Name>)))

我的 web.config 文件如下所示读取特定部分 - 这种方式连接因上述错误而失败

<settings>
<setting name="TNS_ADMIN" value="C:\ORA\TNSFILES"/>
<setting name="WALLET_LOCATION" value="(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=c:\temp\wallet)))"/>
<setting name="SSL_VERSION" value= "0" />
<setting name="SSL_CLIENT_AUTHENTICATION" value = "TRUE" />
</settings>

<connectionStrings>
<add name="OracleWallet1" providerName="oracle.manageddataaccess.client"     connectionString="Data Source=source;User Id=/;" />
</connectionStrings>

请在此处提出可能存在的问题

1 个答案:

答案 0 :(得分:0)

在最新的ODP.NET 12.2文档中,more detailed information提供了使用带钱包的TLS / SSL配置托管ODP.NET的步骤。如果您仍然遇到错误,我建议您使用Oracle Support打开服务请求,并提供来自客户端和服务器端的跟踪。使用钱包主要是配置练习。通过这些跟踪可以更轻松地识别某些设置是否配置错误或错过了一个步骤。由于跟踪信息非常详细,因此不建议您将此信息放在SO或公共互联网上的任何其他位置。