如何在Entity Framework 6中使用加密的连接字符串?

时间:2015-04-23 17:14:52

标签: c# entity-framework connection-string

在我的实体框架项目中,我通过App.config中的connectionStrings连接到数据库。没问题。

<connectionStrings>
  <add name="ParametrosEntities" connectionString="metadata=res://*/Model.Busine...." providerName="System.Data.EntityClient" />
</connectionStrings>

现在,BusinessEntities类用于连接字符串

public partial class ParametrosEntities : DbContext
{
    public ParametrosEntities()
        : base("ParametrosEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }
}

现在,我正在做的是加密连接URL以确保安全,但这是我不知道如何让EntityFramewor更改连接字符串的地方。我解释一下。

的App.config

<connectionStrings>
  <add name=" ParametrosEntitiesMDM" connectionString="FGDHTYEHSN58302..." providerName="System.Data.EntityClient" />
</connectionStrings>

然后我创建了一个新的类来解密

 public class ServDbContext : DbContext
{
   public ServDbContext(string sNameOrStringConnection)
    {
        new DbContext(GetConnection(sNameOrStringConnection));
    }

    public static string GetConnection(string nameStrg)
    {
        bool bFlag = false;
        var conexion = Desencriptar(ConfigurationManager.ConnectionStrings[nameStrg].ConnectionString, out bFlag);
        if (bFlag)
            return conexion;
        else
            return "";
    }
}

最后我的BusinessEntities改为

public partial class ParametrosEntities : ServDbContext
{
    public ParametrosEntities()
        : base("ParametrosEntitiesMDM")
    {
    }
}

,这给出了错误:

  

初始化字符串的格式不符合从索引0开始的规范。

且无法连接。

0 个答案:

没有答案