如何保護我的連接字符串?我想在C#中使用實體框架4.1(第一代碼),但對其他人看不到我的連接字符串很重要。在實體框架中加密ConnectionString(第一個代碼)
6
A
回答
7
使用EF或任何其他ORM沒有區別,您可以使用加密連接字符串的標準方法並在調用EF的初始化之前將其解密,上下文將自動發生。
3
你可以逮捕(的DbContext或IdentityDbContext如果使用ASPNET標識)從上下文類連接字符串調用和修改連接字符串返回。在我的情況下,我不是加密整個連接字符串,而是選擇只加密密碼。您可以使用相同的方法來加密整個連接字符串。
注:此功能(StringCipher.Decrypt)用於加密和解密來自這個話題 - >https://stackoverflow.com/a/1344255/1390025
在這裏你抓的呼叫連接字符串
public YourDB()
: base(GetSqlConnection("DefaultConnection"))
{}
在上面場景我從app.config或web.config獲取連接字符串。但是,根據您的請求,您可以加密整個連接字符串並像下面的示例一樣;
public YourDB()
: base(StringCipher.Decrypt("your-encrypted-connection-string", "passphrase-used-to-encrypt"))
{}
在僅該密碼被加密的情況下,該功能下面替換純文本加密的密碼,並返回連接字符串;
public static string GetSqlConnection(string connectionStringName = "DefaultConnection")
{
// optionally defaults to "DefaultConnection" if no connection string name is inputted
string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
string passPhrase = "passphrase-used-to-encrypt";
// decrypt password
string password = get_prase_after_word(connectionString, "password=", ";");
connectionString = connectionString.Replace(password, StringCipher.Decrypt(password, passPhrase));
return connectionString;
}
用來解析從連接字符串
public static string get_prase_after_word(string search_string_in, string word_before_in, string word_after_in)
{
int myStartPos = 0;
string myWorkString = "";
// get position where phrase "word_before_in" ends
if (!string.IsNullOrEmpty(word_before_in))
{
myStartPos = search_string_in.ToLower().IndexOf(word_before_in) + word_before_in.Length;
// extract remaining text
myWorkString = search_string_in.Substring(myStartPos, search_string_in.Length - myStartPos).Trim();
if (!string.IsNullOrEmpty(word_after_in))
{
// get position where phrase starts in the working string
myWorkString = myWorkString.Substring(0, myWorkString.IndexOf(word_after_in)).Trim();
}
}
else
{
myWorkString = string.Empty;
}
return myWorkString.Trim();
}
相關問題
- 1. 設計代碼第一個實體框架實體框架
- 2. 實體框架代碼第一個IQueryable
- 3. 實體框架代碼第一個GenericTypeArguments
- 4. 實體框架中的connectionString
- 5. 實體框架代碼第一關係
- 6. 實體框架代碼第一
- 7. WPF和實體框架代碼第一
- 8. 實體框架代碼第一個和實體跟蹤
- 9. 實體框架代碼第一個只讀實體
- 10. 代碼第一個實體框架添加對象
- 11. 實體框架代碼第一個外鍵添加索引
- 12. 實體框架5,代碼第一個懶加載不工作
- 13. 定義許多在代碼中第一個實體框架
- 14. 實體框架4和代碼第一CTP 5 - 缺少密鑰
- 15. 實體框架 - 代碼第一個關係:一對一個
- 16. 洋蔥架構 - 實體框架代碼第一個模型DataAnnotations
- 17. 實體框架代碼第一個 - 奇怪的實體加載行爲
- 18. 實體框架代碼第一個默認的SQL Server實例?
- 19. 實體框架代碼第一個雙一對一的關係
- 20. 將表格乘以實體框架代碼中的單個實體第一個
- 21. 嘲諷代碼第一實體框架的實體
- 22. 實體框架 - 代碼第一 - 一個與共享主鍵
- 23. 創建一個新表實體框架代碼第一模式
- 24. 實體框架代碼第一個級聯刪除一對多
- 25. 實體框架代碼第一個多個數據庫
- 26. 實體框架代碼第一個DbConfiguration爲多個數據庫
- 27. 實體框架代碼第一個和多個程序集
- 28. 實體框架代碼第一次自定義加入
- 29. 實體框架代碼第一次爲正數添加約束
- 30. 加密/解密數據是數據庫第一實體框架
密碼tnkx很多的幫助和鏈接功能 – 2012-01-06 15:34:00