我创建了一个名为 Crypto 的类来加密和解密连接字符串。这个类完美地工作。
这个想法是在配置文件中获取加密的连接字符串:
<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 等)。这可能是原因吗?
非常感谢找到解密实体框架连接字符串的正确方法的任何帮助。