c# - 如何在浏览表单时始终显示 db 的价值
问题描述
var query = db.Users.Where(x => x.UserName == username.Text && x.PassWord == password.Text)
.FirstOrDefault();
if (query != null)
{
MessageBox.Show("sign in successful", "success", MessageBoxButtons.OK, MessageBoxIcon.Information);
HomeScreen hs = new HomeScreen();
hs.labelControl1.Text = query.UserName;
hs.pictureEdit1.EditValue = query.Image;
this.Hide();
hs.Show();
}
我正在做的是在主屏幕表单中显示用户名,但是当我转到另一个表单并返回主屏幕表单时,它不显示用户名。我想要做/显示的是用户名,无论我去另一个表格,然后再回到主屏幕。这怎么可能?
解决方案
以快速和肮脏为出发点?如果需要,请使用 UserName 和图像创建一个简单的可序列化 UserInfo 类:
[Serializable]
public class UserInfo
{
public string UserName {get; set;}
}
然后登录成功
Session["UserInfo"] = new UserInfo { UserName = query.UserName };
在其他页面上:
var userInfo = Session["UserInfo"];
if (userInfo == null)
// Redirect back to your login, the session timed out.
通常,您将希望将其绑定以补充您的站点身份验证以断言当前登录的身份。
除此之外,永远不要在数据库中以纯文本形式存储密码。生成一个哈希值以存储在数据库中,然后当用户使用密码登录时,对该值进行哈希处理并比较哈希值。
推荐阅读
- installation - 使用 Inno Setup 和 node-windows 脚本将节点应用程序安装为服务的问题
- angular - 如何在 Angular 2+ 中将过多的输入传递给子组件。使用 @Input 向子组件传递太多输入可能会降低性能?
- reactjs - 内联三元条件运算符
- python - 库常量 - 如何使用
- html - 如何限制表 td 中显示的字符长度
- css - 我需要帮助在 WordPress 网站的移动视图中编辑侧边距
- reactjs - 如何在反应中共享对象。?
- adobe - 如何查看放置在 MediaBox 外的图像?
- javascript - 如何避免 React-grid-system 中的列调整大小?
- scalardb - 在 Scalar DB 中,如果我不需要它或者我需要做一些清理,我可以保留一个事务吗?