パスワードを3回以上入力したユーザーの入力を防ぎたい。私は彼らのIPをセッションに保存し、タイムアウトを1分間に設定しました。この解決策が良いかどうかはわかりませんが、間違ったパスワードを3回入力すると問題が発生します。コードは正しく機能しますが、セッションがタイムアウトしたときに、ページを更新しないと機能しません。ユーザーは再試行できるはずですが、更新すると、ユーザーは再試行できます。どうしたの?
これが私のコードです...
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;
}