NET Framework 4.5 ado.net數據庫連接支持使用SecureString內存流方式保密文本。 一旦使用這類操作,文本加密是私有不能共享的,並在不再需要時從計算機內存中刪除。 SecureString此類不能被繼承。 下面做了一些演示
private void Login_Click(object sender, EventArgs e)
{
//登錄參數
string userName = Username.Text;
SecureString password = securestring(Password.Text);
password.MakeReadOnly();
//SqlCredential 提供了更安全的方式來指定使用 SQL Server 身份驗證的登錄嘗試密碼。
SqlCredential credential = new SqlCredential(userName, password);
//數據庫連接
using (SqlConnection conn = new SqlConnection("Server=(local);Initial Catalog=DATABASE;"))
{
conn.Credential = credential;
conn.Open();
MessageBox.Show("連接成功");
conn.Close();
}
}
/// <summary>
/// 保密文本
/// </summary>
/// <param name="text">保密的字符串</param>
/// <returns></returns>
private SecureString securestring(string text)
{
char[] pChar = text.ToCharArray();
SecureString password = new SecureString();
foreach (char c in pChar)
{
password.AppendChar(c);
}
return password;
}
當輸入一個正確sql登錄用戶名和密碼時,輸出結果是這樣的

當輸入不正確的用戶名或密碼時,拋出一個sql異常

下一篇繼續講解NET Framework 4.5新特性
