我想阻止输入密码超过 3 次的用户进入。我将他们的 IP 保存在会话中并设置超时一分钟。我不知道这个解决方案好不好,但是输入错误密码三次就会出现问题。代码可以正常工作,但是当会话超时时,如果我不刷新页面,它就不起作用。用户应该可以再试一次,但如果我刷新它,用户可以再试一次。有什么问题?
这是我的代码...
if (olduser.Trim() == username.Trim() && password.Trim()==oldpass.Trim())
{ retval =olduser;
HttpContext context = HttpContext.Current;
context.Session[retval.ToString()] = retval.ToString();
}
else
{
string ip = HttpContext.Current.Request.UserHostAddress;
HttpContext failuser = HttpContext.Current;
failuser.Session.Timeout =1;
if (failuser.Session[ip] != null)
failuser.Session[ip] = (int)failuser.Session[ip] + 1;
else
failuser.Session[ip] = 1;
retval = failuser.Session[ip].ToString();
if((int)failuser.Session[ip]>2)
retval = "!";
}
return retval;
}