如何保护我的连接字符串?我想在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. 实体框架中的connectionString
- 3. 实体框架代码第一
- 4. WPF和实体框架代码第一
- 5. 实体框架代码第一个只读实体
- 6. 代码第一个实体框架添加对象
- 7. 定义许多在代码中第一个实体框架
- 8. 实体框架4和代码第一CTP 5 - 缺少密钥
- 9. 实体框架 - 代码第一个关系:一对一个
- 10. 实体框架代码第一个默认的SQL Server实例?
- 11. 实体框架代码第一个双一对一的关系
- 12. 嘲讽代码第一实体框架的实体
- 13. 实体框架代码第一个级联删除一对多
- 14. 实体框架 - 代码第一 - 一个与共享主键
- 15. 实体框架代码第一个DbConfiguration为多个数据库
- 16. 实体框架代码第一个和多个程序集
- 17. 实体框架代码第一次为正数添加约束
- 18. 实体框架代码第一次自定义加入
- 19. 加密/解密数据是数据库第一实体框架
- 20. 在实体框架中为关联实体的计数添加一个属性代码第一个
- 21. 更改实体框架中的ConnectionString 4
- 22. 实体框架代码第一个 - 共享的一对多实体
- 23. 实体框架代码第一个默认数据库位置
- 24. 代码第一个实体框架继承
- 25. 实体框架代码第一个函数
- 26. 实体框架代码第一个CTP5映射
- 27. 实体框架代码第一个计算属性
- 28. 实体框架代码第一个错误
- 29. 实体框架代码第一个原始集合
- 30. 使用代码第一个实体框架初始化类
密码tnkx很多的帮助和链接功能 – 2012-01-06 15:34:00