Asp.net 获得;集成安全性是无效的属性错误“;尽管没有具体说明

Asp.net 获得;集成安全性是无效的属性错误“;尽管没有具体说明,asp.net,connection-string,odp.net,Asp.net,Connection String,Odp.net,我将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>

我将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>

当我尝试使用此连接字符串建立连接时,会出现“集成安全性是无效的连接字符串属性”错误。如您所见,我没有在配置文件中指定此属性。因此,在某个时候,这个属性可能会自动添加。
我曾经把连接字符串硬编码过,我一点问题都没有。你有什么办法解决这个问题吗?

看起来他们在这里讨论这个问题:

似乎解决方案可以是在连接字符串中使用
User Id=/
,看看是否有效


还要确保您的sqlnet.ora具有“sqlnet.AUTHENTICATION\u SERVICES=(NTS)”

幸运的是,我找到了解决方案。我已经提供了web配置内容,但还没有提供用于从代码隐藏中访问连接字符串的代码。代码如下:

string conString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
由于我怀疑集成安全属性会自动添加,我几乎可以肯定会检索到其他连接字符串。我厌倦了将连接字符串[0]更改为连接字符串[“main”],瞧,它成功了。因此,尽管配置文件中只有一个连接字符串,但第0个连接字符串不是我需要的。当我显示第0个连接字符串时,看看我得到了什么:

data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
我相信您已经从machine.config文件猜到了它的来源。因此,为了使一切都干净和安全,我再次确信,大多数情况下,通过名字访问是一个更好的主意