从任一表加载会话

时间:2015-07-24 09:59:11

标签: c# asp.net sql-server

我试图在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" ;
    }

我应该在母版页的页面加载中检查用户是管理员还是成员?

1 个答案:

答案 0 :(得分:1)

这种设计完全是错误的。管理员 是一个用户,只有一个人可以做得更多。您应该将管理用户存储在与非管理用户相同的表中。

使用此设计,您需要其他字段,例如Session["IsAdmin"],或检查Session["ULogin"]的类型:

if (Session["ULogin"] is Admin)
{
    // ...
}