好吧所以我有一个任务,我必须让客户端尝试输入密码3次,如果他没有输入正确的密码3次,它会将他重定向到另一个页面,那就是那个我不知道如何使用会话,我怎么能像++之类的东西。
Session["counter"] = 0;
我正在努力做到以下几点:
Session["counter"]++;
如何检测客户端是否尝试输入密码3次? 感谢
答案 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)
{
}