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新特性