我试图在admin表和成员表上使用单点登录。
这是我的按钮点击我的asp母版页后面的代码:
if (MemberDB.searchUsername(User.Text) != null)
{
Member m = MemberDB.Login(User.Text, Password.Text);
Session["ULogin"] = m;
loginForm2.Visible = true;
loginForm.Visible = false;
LoginLabel.Text = "You are logged in as " + m.Name;
}
else if (AdminDB.searchUsername(User.Text) != null)
{
Admin a = AdminDB.Login(User.Text, Password.Text);
Session["ULogin"] = a;
loginForm2.Visible = true;
loginForm.Visible = false;
LoginLabel.Text = "You are logged in as " + m.Name;
}
else
{
ErrorLabel.Text = "Error in Login! Click <a href=\"ResetPassword.aspx\">here</a> to reset your password" ;
}
我应该在母版页的页面加载中检查用户是管理员还是成员?
答案 0 :(得分:1)
这种设计完全是错误的。管理员 是一个用户,只有一个人可以做得更多。您应该将管理用户存储在与非管理用户相同的表中。
使用此设计,您需要其他字段,例如Session["IsAdmin"]
,或检查Session["ULogin"]
的类型:
if (Session["ULogin"] is Admin)
{
// ...
}