添加到会话号码

时间:2012-04-03 18:57:35

标签: asp.net

好吧所以我有一个任务,我必须让客户端尝试输入密码3次,如果他没有输入正确的密码3次,它会将他重定向到另一个页面,那就是那个我不知道如何使用会话,我怎么能像++之类的东西。

Session["counter"] = 0;

我正在努力做到以下几点:

Session["counter"]++;

如何检测客户端是否尝试输入密码3次? 感谢

4 个答案:

答案 0 :(得分:2)

int counter=1;
Session["counter"]=counter;

如果要更新它,请读取该值并将其转换为int然后再增加,保存回来

if(Session["counter"]!=null)
{
 counter=Convert.ToInt32(Session["counter"]);
}
counter++;
Session["counter"]=counter;

编辑:根据评论,您可以检查计数器值。我将检查包含在2个方法中进行设置和获取,你甚至可以像其他人一样使用属性。

private int GetLoginAttempts()
{
    int counter=0;
    if(Session["counter"]!=null)
    {
     counter=Convert.ToInt32(Session["counter"]);
    }
  return counter;
}
private void IncreaseLoginAttempts()
{
   if(Session["counter"]!=null)
   {
     counter=Convert.ToInt32(Session["counter"]);
   }
   counter++;
   Session["counter"]=counter;
}

当用户尝试登录时(在按钮单击/操作方法中),请检查当前值

   if(GetLoginAttempts()==3)
   {
        //This means user already tried 3 times, show him a message !
   }
   else
   {
        //Do the login process, If login fails, increase the counter 
       IncreaseLoginAttempts()
   }

答案 1 :(得分:1)

试试这个。

int counter = Int32.Parse(Session["counter"].ToString()); //Session["counter"] may be null

Session["counter"] = ++counter;

答案 2 :(得分:0)

您可以通过将其包装在属性中来实现它:

    public int PasswordAttempts
    {
        get
        {
            if (Session["PasswordAttempts"] == null)
                Session["PasswordAttempts"] = 0;

            return (int)Session["PasswordAttempts"];
        }
        set
        {
            Session["PasswordAttempts"] = value;
        }
    }

    protected void Submit_Click(object sender, EventArgs e)
    {
        PasswordAttempts++;
    }

答案 3 :(得分:0)

private Int16 Counter
{
    get
    {
        if (ViewState["Counter"] == null)
            return 0;
        else
            return Convert.ToInt16(ViewState["Counter"]);
    }
    set
    {
        Int16 counter = 0;
        if (ViewState["Counter"] == null)
            counter = 0;
        else
            counter = Convert.ToInt16(ViewState["Counter"]);
        ViewState["Counter"] = counter + 1 + value;
    }
}
if(counter == 3)
{
}