我将ASP.NET用于Web,Oracle用于数据库。对于ASP.NET和Oracle之间的通信,我使用ODP.NET。我在web.config文件中指定了连接字符串:
<connectionStrings>
<add name="main" connectionString="Data Source=AGAPUSTEST; User Id=agapus;Password=pswd;"/>
</connectionStrings>
当我尝试使用此连接字符串建立连接时,我得到“Integrated Security是无效的连接字符串属性”错误。如您所见,我没有在配置文件中指定此属性。所以在某些时候,这个属性可能会自动添加。 我以前连接字符串是硬编码的,我根本没有任何问题。你有任何想法如何解决这个问题吗?
答案 0 :(得分:1)
幸运的是我找到了解决方案。我提供了网络配置内容,但我没有给你我用来从代码后面访问连接字符串的代码。这是代码:
string conString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
由于我怀疑自动添加了Integrated Security属性,因此我几乎可以确定已检索到其他一些连接字符串。我厌倦了将ConnectionStrings [0]更改为ConnectionStrings [“main”]并且瞧,它有效。因此,虽然配置文件中只有一个连接字符串,但第0个连接字符串不是我需要的连接字符串。当我显示第0个连接字符串时,看看我得到了什么:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
我确定你从machine.config文件中猜到了它的来源。因此,为了让一切变得干净和安全,我再次确信通过名字访问大部分时间都是一个更好的主意。
答案 1 :(得分:0)
看起来他们在这里谈论这个问题: https://community.oracle.com/thread/585813?tstart=405
似乎解决方案可能是在连接字符串中使用User Id=/
并查看是否有效
另外请确保您的sqlnet.ora具有“SQLNET.AUTHENTICATION_SERVICES =(NTS)”