【发布时间】:2014-06-10 10:45:53
【问题描述】:
在WinForms 应用程序中,我想在整个应用程序生命周期中将当前登录的用户保留在内存中。这样在后续的用户操作中,我可以检查用户的权限。另一种选择是将用户信息存储在本地的文本文件中,但这似乎不安全。
用户登录验证码
private void ValidateUser()
{
var hashEntered = Encryption.GetHash(_View.UserID, _View.Password); //hash of the salted password entered by user.
var User = _DataService.GetUser(_View.UserID); //user trying to log in
if (user != null)
{
var hashInDB = user.PassWord;
if (hashEntered != hashInDB)
{
MessageBox.Show("Invalid password");
}
else
{
_MainView.show();
}
}
else
{
MessageBox.Show("Invalid user name");
}
}
所以对于 MainView,当前登录的用户应该是可用的。
如何将当前用户对象保留在内存中直到程序退出?
【问题讨论】:
-
如果我理解正确,您希望保存用户对象,然后检查该对象的权限。当后端更改用户权限时会发生什么?这是“检查时间到使用时间”问题的经典示例。 en.wikipedia.org/wiki/Time_of_check_to_time_of_use
-
我应该提到权限信息要保存在内存中。只有用户信息(至少是UserID)
标签: c# .net winforms memory mvp