dat保存登陆密码

 
  
winform -- 记住密码 收藏

要引用IO包

private string accountFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + " \\accounts.dat " ;

private IDictionary < string , string > accounts = new SortedList < string , string > ();

/// <summary>
/// 记住密码
/// </summary>
private void ReloadAccounts()
{
this .txtUserName.AutoCompleteCustomSource.Clear();
accounts.Clear();
if ( ! File.Exists(accountFilePath))
{
return ;
}
using (StreamReader reader = new StreamReader(accountFilePath))
{
while ( true )
{
string username = reader.ReadLine();
if ( string .IsNullOrEmpty(username)) break ;
string password = reader.ReadLine();
if ( string .IsNullOrEmpty(password)) break ;
accounts.Add(username, password);
txtUserName.AutoCompleteCustomSource.Add(username);
}
}
}

/// <summary>
/// 登录事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click( object sender, EventArgs e)
{
if (accounts.ContainsKey( this .txtUserName.Text))
{
accounts[
this .txtUserName.Text] = this .txtUserPass.Text;
}
else
{
accounts.Add(
this .txtUserName.Text, this .txtUserPass.Text);
}

using (StreamWriter writer = new StreamWriter(accountFilePath))
{
foreach (KeyValuePair < string , string > account in accounts)
{
writer.WriteLine(account.Key);
writer.WriteLine(account.Value);
}
}

ReloadAccounts();

string user = this .txtUserName.Text.Trim();
// 加密
string bbb = Crypto.EncryptData( " jm " , this .txtUserPass.Text.Trim());
string pwd = bbb;

string filter = " username=' " + user + " ' " + " and password=' " + pwd + " ' " ;

DataTable loginTable
= manager.selectAll( " userlist " , " * " , filter);

if ( this .txtUserName.Text.Trim() == "" || bbb == "" )
{
MessageBox.Show(
" 用户名或密码不能为空! " );
this .txtUserName.Focus();
}
else if (loginTable.Rows.Count == 0 )
{
MessageBox.Show(
" 用户名或密码错误! " );
this .txtUserName.Focus();
}
else
{
MessageBox.Show(
" 登录成功! " );
}
}

// 当鼠标离开用户名时自动获得密码
private void txtUserName_Leave( object sender, EventArgs e)
{
string password = string .Empty;
if (accounts.TryGetValue( this .txtUserName.Text, out password))
this .txtUserPass.Text = password;
}



本文来自CSDN博客,转载请标明出处:http:
// blog.csdn.net/zhangjianjianjianjia/archive/2009/11/06/4776397.aspx

转载于:https://www.cnblogs.com/longle/archive/2011/06/04/2072921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用.NET Framework中的System.Security命名空间提供的ProtectedData类来保护您的敏感信息,例如登录凭据。ProtectedData类使用当前用户的登录凭据,以及可选的数据保护范围,对数据进行加密和解密。 以下是一个使用ProtectedData类保存和读取登录凭据的示例: ```csharp using System.Security.Cryptography; // 保存登录凭据 public void SaveCredentials(string username, string password) { byte[] usernameBytes = Encoding.UTF8.GetBytes(username); byte[] passwordBytes = Encoding.UTF8.GetBytes(password); byte[] protectedUsername = ProtectedData.Protect(usernameBytes, null, DataProtectionScope.CurrentUser); byte[] protectedPassword = ProtectedData.Protect(passwordBytes, null, DataProtectionScope.CurrentUser); File.WriteAllBytes("credentials.dat", protectedUsername.Concat(protectedPassword).ToArray()); } // 读取登录凭据 public (string, string) LoadCredentials() { byte[] protectedData = File.ReadAllBytes("credentials.dat"); byte[] protectedUsername = protectedData.Take(protectedData.Length / 2).ToArray(); byte[] protectedPassword = protectedData.Skip(protectedData.Length / 2).ToArray(); byte[] usernameBytes = ProtectedData.Unprotect(protectedUsername, null, DataProtectionScope.CurrentUser); byte[] passwordBytes = ProtectedData.Unprotect(protectedPassword, null, DataProtectionScope.CurrentUser); string username = Encoding.UTF8.GetString(usernameBytes); string password = Encoding.UTF8.GetString(passwordBytes); return (username, password); } ``` 请注意,此示例仅适用于本地保存登录凭据。如果您需要在多个设备之间同步凭据,则需要使用不同的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值