2

私のasp.netアプリケーションは、ユーザーログイン機能にカスタマイズされたロジックを使用しています。要件の1つは、ユーザー(ロックアウトされた後)が15分後までアクセスできないことです。

私の現在のロジックは次のとおりです。

// check if account is locked & LastLoginAttempt is NOT over 15 minutes;
if ((iLoginAttempts > 4) && ( dtCurrentTimePlus15 < dtLastLoginAttempt))
{
    oCust.CustLoginStatus = "Your account is currently locked.";
    return false;
}  

ただし、iLoginAttempts = 5で、dtLastLoginAttemptが2分前の場合、上記のロジックでif句がスキップされるのはなぜですか。

4

2 に答える 2

1

orANDではなく論理を使用する必要があります。誰かがこれらの条件の両方を満たした場合にのみ、誰かをロックアウトします:4回以上の試行とタイムアウト期間未満。

を使用するorと、これら2つの条件のいずれかまたは両方を満たす人をロックアウトできます。

于 2012-07-30T14:43:05.813 に答える
1

その理由は

 dtCurrentTimePlus15 = 15

dtLastLoginAttempt = 2

ステートメントを次のように反転します。

if ((iLoginAttempts > 4) && (dtLastLoginAttempt < dtCurrentTimePlus15))
{
    oCust.CustLoginStatus = "Your account is currently locked.";
    return false;
}  
于 2012-07-30T14:43:52.697 に答える