1. 程式人生 > 實用技巧 >EF連線字串加密及封裝

EF連線字串加密及封裝

大致兩種方案

因為EF自動生成的 DbContext 類 【手動更改此檔案可能導致應用程式出現意外的行為。如果重新生成程式碼,將覆蓋對此檔案的手動更改。】所以不能對原生類進行更改,那麼就有兩種方案

方案1: 通過 partial 關鍵字的特性重寫建構函式,並封裝加密類(外加封裝dll加密混淆哦),安全性極高。參考部落格【 EF連線字串加密及封裝

方案2: 修改T4生成規則。參考部落格 【EF資料庫連線字串加密

注意事項

不管用什麼演算法加密字串,都需要把需要加密的串中 &quot 更改為單引號!!
比如

metadata=res://*/Models.AbxPlatform.csdl|res://*/Models.AbxPlatform.ssdl|res://*/Models.AbxPlatform.msl;provider=System.Data.SqlClient;provider connection string="datasource=.;initial catalog=AbxPlatform;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework"

更改為

metadata=res://*/Models.AbxPlatform.csdl|res://*/Models.AbxPlatform.ssdl|res://*/Models.AbxPlatform.msl;provider=System.Data.SqlClient;provider connection string=';data source=.;initial catalog=AbxPlatform;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework';