这个问题可能会重复,但我们无法找到一个好的解决方案。
我们的项目使用EF 6.0& C#,针对.NET 4.0及更高版本,最后是SQL Server 2012。
该项目没有正常工作。但是对EF连接字符串及其存储方式的查询很少。
我们添加了以下代码来读取加密的连接字符串,它只在某种程度上有效,即直到我们不添加新的存储过程。
public MCMS_II_LogEntities()
// : base("name=MCMS_II_LogEntities") //Original
:base( GetConnectionString())
{
}
public static string GetConnectionString()
{
string connString = new System.Data.EntityClient.EntityConnectionStringBuilder
{
Metadata = "res://*",
Provider = "System.Data.SqlClient",
ProviderConnectionString = new System.Data.SqlClient.SqlConnectionStringBuilder
{
InitialCatalog = "<Catalog Name>",
DataSource = ConfigurationManager.AppSettings["DataSourceAddress"].ToString(),
IntegratedSecurity = false,
MultipleActiveResultSets = true,
UserID = "<LOGIN ID>", // User ID such as "sa"
Password ="<PASSWORD>", // hide the password
}.ConnectionString
}.ConnectionString;
return String.Format(connString);
}
将新存储过程或函数添加到EF模型后,将删除上面添加的编码。
查询
答案 0 :(得分:-1)
在开发过程中,你不应该编码/加密数据库连接字符串,这是一个痛苦的屁股。加密应在部署/升级阶段完成,而不是在开发期间完成。
在加密后测试连接字符串。准备好将代码移动到QA或PROD时加密它。