ASP.Net:仅向登录用户显示按钮

时间:2012-03-09 09:14:34

标签: asp.net button login hide show

我想向登录的用户显示几个按钮。我不使用会员提供者而是使用会话。

我是否还能以某种方式使用LoggedInTemplateor?

我将这样的会话用户存储在OnLogin按钮事件中:

SqlCommand query = new SqlCommand("Select Count(*) FROM Admin Where     username='"+Username.Text+"' AND password='"+Password.Text+"'", conn);

    conn.Open();
    int result = (int)query.ExecuteScalar();
    conn.Close();


    if (result > 0){
        Session["LoggedIn"] = true;
        Session["User"]=Username.Text;
    }
    else Session["LoggedIn"] = false;

然后我尝试在用户登录时创建按钮:

if ((bool)Session["LoggedIn"]==true)) Button_dodaj_oglas.Visible = true;
    else Button_dodaj_oglas.Visible = false;

但是我没有将Objject设置为实例(关于Session)。 WTF?

2 个答案:

答案 0 :(得分:1)

  1. 您可以在会话中存储登录状态&然后切换个人 控制/控制块,但再次,这不是一个好方法我 想(你可以参考蒂姆的评论)
  2. 我建议您根据用户角色级别通过数据库渲染工具栏或菜单,这样设计级别的工作就不多了

答案 1 :(得分:1)

您可以使用Session存储已登录状态,但我不建议这样做,因为Session 不是 Authentication

bool loggedIn = Session["LoggedIn"] != null && (bool)Session["LoggedIn"];
Button1.Visible = loggedIn;