用实体框架解密连接字符串

时间:2013-04-26 06:27:36

标签: entity-framework connection-string encryption

我已经创建了一个名为Crypto的类来加密en decrypt connectionStrings。这个课程很完美。

我们的想法是在配置文件中获取加密的连接字符串:

    <add name="MyConnString" connectionString="KsY+XWC0GnsepTlVu0Z3BU4r0hCAfgrCl/gbqlasndFmCjq0iiTNC7r0JySqm4BtSnSktE20EfDe9F3cDZTaQqwUgmdQTrxBc8cp5HhC9G6PEyzXIVzy2HMyOIH45yTQ9j70uMPV7TUazlnvzRDYnrKJwpgHNQehjMovgkWKCfZji1kQNVN7/61yvdrv+d6KpQKU5Al5W2QKkI7wxYzvJ4vMwH6XoCk1RnulKFKvaMExWtjQTh4XOy2Wo4M9UHKM/FuhjrsxsBg4JgcUcPGfrJZortFmmeDYt7D7QP6/I9HlIrmR4K42/hKSb/ZGiDV9szK6A/V1u9p5qctqFCui7Dx0AKkvUqFIWOWQHtvivV0R/PW8+R1bxsNkr6wUK6A5uPyghJmP4Qv0VI3vW8z0Tw==" providerName="System.Data.EntityClient" />

问题是我在哪里以及如何解密连接字符串(解密方法有效) 我已尝试在edmx文件中对设计器类进行这些调整:

  public partial class KlantenBITEntities : ObjectContext
    {
        public static string DecryptedConnectionString
        {
            get { return Crypto.DecryptFromBase64String(ConfigurationManager.ConnectionStrings["MyConnString"].ToString()); }
        }

在构造函数中,我试图传递解密的连接字符串:

 public KlantenBITEntities(): base(DecryptedConnectionString,"KlantenBITEntities")
        {

            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }

如果我对此我收到此错误: 不支持关键字:'数据源'

我已经加密了整个实体框架连接字符串(使用csdl-,ssdl-,msl-file等...)这可能是原因吗?

非常感谢任何帮助找到解密实体框架连接字符串的正确方法。

1 个答案:

答案 0 :(得分:0)

在这里找到答案: KeyWord Not Supported: data source

问题是&amp; quote。用单引号替换它就可以解决它。