2012-07-30 4 views
2

내 asp.net 응용 프로그램은 사용자 로그인 기능에 사용자 정의 된 논리를 사용합니다. 요구 사항 중 하나는 한 번 잠긴 사용자가 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 분 전입니다은 .... 왜 논리는 위의 경우 절을 건너 뛸 않을 때?

+2

dtCurrentTimePlus15''에 무엇입니까? 어쨌든 다른 방법이 있어야합니다 :'dtLastLoginAttempt'에 15 분을 더하고 현재 시간과 비교해야합니다. –

답변

1

그건

dtCurrentTimePlus15 = 15 

dtLastLoginAttempt = 2 

반전에 문 이유는

if ((iLoginAttempts > 4) && (dtLastLoginAttempt < dtCurrentTimePlus15)) 
{ 
    oCust.CustLoginStatus = "Your account is currently locked."; 
    return false; 
} 
+0

나는 그것이 꽤 쉬워야한다는 것을 알았다. 감사합니다 @ Leniel – DotNetRookie

1

AND가 아닌 or 논리를 사용해야합니다. 당신은 4 개의 attemps 이상 그리고 timeout period보다 적은 두 가지 조건을 모두 충족 시키면 누군가를 잠글 것입니다.

or으로 두 조건 중 하나 또는 둘 모두를 충족시키는 사람은 잠글 수 있습니다.

관련 문제