0

パスワードを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;
    }
4

2 に答える 2

3

あなたはおそらく車輪の再発明を試みているのでしょう。組み込みのASP.NETメンバーシッププロバイダーの使用を検討してください。

于 2012-08-31T08:09:11.080 に答える
0

メンバーシッププロバイダーを使用する場合は、次の機能を無料で利用できます。

無効なパスワードの最大試行回数

于 2012-08-31T08:12:48.597 に答える