对于我的应用程序,我有一个包含所有设置的部分。可以通过单击设置按钮来访问它。 现在,我想做的是,在弹出设置之前,添加一个小的登录屏幕,这样只有管理员才能更改设置。
起初我想保持简单,只需添加默认用户名“Admin”和密码“AdminPass” 我只是检查用户输入是否与代码中应有的内容相同,如果是女士,它将继续。
但是这样做有一个缺点,用户名和密码是硬编码在内部的,因此不能在应用程序中再更改。 (除非我在设置中执行此操作,但这只是一个可以在应用程序外部读取的 xml,因此不是正确的解决方案)。
所以我想知道,解决这个问题的最佳方法是什么?这样,在第一次使用默认登录后,管理员可以更改管理员密码,并将其保存到应用程序中(从而在应用程序重新启动后保存)。
最佳答案
一种方法是获取密码的哈希值并将其存储在文本文件中。然后当用户输入密码时,对其进行哈希处理。与存储在文本文件中的哈希值匹配。如果匹配,您就可以允许登录。
同样,如果用户决定更改密码,请用新的哈希值替换旧的哈希值
您可以使用此代码对密码进行哈希处理
public static string EncodePassword(string password)
{ byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] inArray = HashAlgorithm.Create("SHA1").ComputeHash(bytes);
return Convert.ToBase64String(inArray);
}
您还可以将此信息保存在应用程序配置文件中
关于c# - 创建登录屏幕,WPF,如何存储用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962152/