【问题标题】:Entity Framework 6.0 + Encrypt Connection StringEntity Framework 6.0 + 加密连接字符串
【发布时间】:2014-02-17 01:36:50
【问题描述】:

这个问题可能会重复,但我们无法找到一个好的解决方案。

我们的项目使用 EF 6.0 和 C#,并针对 .NET 4.0 及更高版本,最后是 SQL Server 2012。

没有这个项目可以正常工作。但对 EF 连接字符串及其存储方式的查询很少。

  1. 如何读取存储在 app.config 中的加密连接字符串,以便在 EF 的 context.cs 文件中读取。
  2. 我们添加了以下代码来读取加密的连接字符串,它可以工作,但只是在一定程度上,即直到我们不添加新的存储过程。

    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);
    }
    
  3. 一旦我们将新的存储过程或函数添加到 EF 模型中,上面添加的代码将被删除。

查询

  1. 实现这一目标的最佳做法是什么?
  2. 如何解决此问题。

【问题讨论】:

  • 对不起,我不明白。存储过程和函数在其中的作用是什么?
  • @GertArnold SP 和 UDF 在其中没有特定的作用。但是我的意思是在添加了上面的代码之后,如果我们将另一组新的 SP 或 UDF 包含到 EF 的库中,那么上面的代码就会消失,我们需要将它添加回来。
  • 然后把它放到别的地方。公共静态方法可以填充在任何地方,最好是在某个静态实用程序类中。

标签: c# sql entity-framework encryption


【解决方案1】:

在开发过程中,您不应该对数据库连接字符串进行编码/加密,这很麻烦。加密应该在部署/推广阶段而不是在开发阶段完成。

在加密后测试连接字符串。当您准备好将代码移至 QA 或 PROD 时对其进行加密。

【讨论】:

  • 我们正在测试编码/加密的一些功能,因此我们需要做这个练习。我们确实知道在测试时这不是一个好方法,但在这个阶段我们别无选择,因为我们需要检查应用程序的所有功能是否正确接收到代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
相关资源
最近更新 更多