【发布时间】:2010-11-17 16:35:56
【问题描述】:
我想在我的 WPF 应用程序的登录表单中添加一个“记住我”复选框。最好的方法是什么?
目前,应用程序通过网络服务调用登录,该调用返回一个经过身份验证的令牌,用于后续调用。我是否应该简单地双向加密并将此令牌存储在文件系统中的某个位置?
【问题讨论】:
标签: wpf winforms login persistence
我想在我的 WPF 应用程序的登录表单中添加一个“记住我”复选框。最好的方法是什么?
目前,应用程序通过网络服务调用登录,该调用返回一个经过身份验证的令牌,用于后续调用。我是否应该简单地双向加密并将此令牌存储在文件系统中的某个位置?
【问题讨论】:
标签: wpf winforms login persistence
您也可以将其存储在Isolated Storage 中或在应用程序的设置中创建用户设置。
编辑: Oren 关于使用 DPAPI 保护信息的建议很好,但它不存储任何内容:
要记住的重要一点是 DPAPI 仅对数据应用加密保护。它不存储任何受保护的数据;因此调用 DPAPI 的应用程序必须实现自己的受保护数据的存储。
【讨论】:
我搜索了另一个解决方案:
右键单击您的项目 -> 属性 -> 设置。
添加您需要存储在客户端计算机上的变量。
例如:
Name Type Scope Value
UserName String User
Password String User
然后,例如,您要在登录按钮单击时保存首选项:
If(CheckboxRemember.checked)
{
YourProjectNamespace.Properties.Settings.Default.UserName = TextBoxUserName.Text;
YourProjectNamespace.Properties.Settings.Default.Password = TextPassword.Text;
YourProjectNamespace.Properties.Settings.Default.Save();
}
以同样的方式,在窗口加载或应用程序启动时访问这些值:
TextBoxUserName.Text = YourProjectNamespace.Properties.Settings.Default.UserName;
TextPassword.Text = YourProjectNamespace.Properties.Settings.Default.Password;
【讨论】: