我的 web.config 中有 EF 连接字符串,如下所示
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=Source;Initial Catalog=Pricing;Integrated Security=False;UID=User;Pwd=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
</connectionStrings>
在我的代码中,我这样做是为了获取我用于其他一些控件的连接字符串
SqlDataSource1.ConnectionString = ((System.Data.Entity.Core.EntityClient.EntityConnection)Entities.Current.Connection).StoreConnection.ConnectionString;
我面临的问题是我正在获取连接字符串,但由于某种原因它没有密码
Data Source=Source;Initial Catalog=Pricing;Integrated Security=False;UID=User;MultipleActiveResultSets=True
所以我的连接失败了。有人可以告诉我我在这里做错了什么。我只需要以下部分
Data Source=Source;Initial Catalog=Pricing;Integrated Security=False;UID=User;Pwd=password;MultipleActiveResultSets=True
谢谢
编辑:所以看起来密码是设计隐藏的 https://social.msdn.microsoft.com/Forums/en-US/5a5730be-c93e-4da5-a614-7ed629f06f51/why-would-password-of-connectionstring-be-filtered-after-instantiating-any-object-in-entity?forum=adodotnetentityframework
不确定是否有其他方法
看起来 ConfigurationManager 在 Core 中可用(ConfigurationManager.AppSettings 在 .NET Core 2.0 中可用吗?(。
为什么不试试呢?然后从 web.config 中提取连接字符串和密码(如果需要,则存储为单独的密钥(。