【发布时间】:2014-02-17 01:36:50
【问题描述】:
这个问题可能会重复,但我们无法找到一个好的解决方案。
我们的项目使用 EF 6.0 和 C#,并针对 .NET 4.0 及更高版本,最后是 SQL Server 2012。
没有这个项目可以正常工作。但对 EF 连接字符串及其存储方式的查询很少。
- 如何读取存储在 app.config 中的加密连接字符串,以便在 EF 的 context.cs 文件中读取。
-
我们添加了以下代码来读取加密的连接字符串,它可以工作,但只是在一定程度上,即直到我们不添加新的存储过程。
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 模型中,上面添加的代码将被删除。
查询
- 实现这一目标的最佳做法是什么?
- 如何解决此问题。
【问题讨论】:
-
对不起,我不明白。存储过程和函数在其中的作用是什么?
-
@GertArnold SP 和 UDF 在其中没有特定的作用。但是我的意思是在添加了上面的代码之后,如果我们将另一组新的 SP 或 UDF 包含到 EF 的库中,那么上面的代码就会消失,我们需要将它添加回来。
-
然后把它放到别的地方。公共静态方法可以填充在任何地方,最好是在某个静态实用程序类中。
标签: c# sql entity-framework encryption