2014-07-04 2 views
-2

웹 매트릭스 및 웹 보안 개념을 처음 사용합니다. IsAccountLockedOut(String, Int32, Int32) 메서드를 사용하여 지정한 시간 (초) 내에 실패한 암호 시도 횟수가 너무 많아 지정된 계정이 잠겨 있는지 여부를 확인했습니다. 여기에 잠금 해제 후 (DB에서 잠금 해제 날짜 시간 업데이트) 멤버십 계정이 하나의 잘못된 비밀번호 후에 다시 잠겨 있지만 데이터베이스가 3 번 시도하도록 허용됩니다. 문제를 해결하거나 잠금 해제 코드 샘플을 제공하는 방법을 알려주십시오.Webmatrix WebSecurity에서 unlock 사용자가 작동하지 않습니다 .IsAccountLockedOut 메서드

답변

0

당신을 위해 도움이 될 수 있다면 나도 몰라,하지만 WebMatrix 시작 사이트 템플릿 계정/Login.cshtml 페이지에서 WebSecurity.GetPasswordFailuresSinceLastSuccess() 메소드를 사용하는 계정 잠금 시스템 구현 :

if (WebSecurity.UserExists(email) && 
     WebSecurity.GetPasswordFailuresSinceLastSuccess(email) > 4 && 
     WebSecurity.GetLastPasswordFailureDate(email).AddSeconds(60) > DateTime.UtcNow) 
{ 
    Response.Redirect("~/Account/AccountLockedOut"); 
    return; 
} 

편집 니펫 고려에 LastPasswordFailureDate 및 webpages_Membership 테이블 PasswordFailuresSinceLastSuccess 필드 걸리고 오류의 수 (예 4) 소정의 값을 초과하면 제의 주어진 수에 대한 계정을 잠그는

s (예제에서 60).

다른 테이블에서 "UnlockDateTime"을 관리 할 필요가 없습니다.

+0

그래서 계정을 잠금 해제하려면 어떻게해야합니까? 우리 프로젝트에서 사용자 계정 잠금 해제를위한 Db의 "UnlockDateTime"필드를 업데이트하고 있습니다. 이게 올바른 방법일까요? 또는 다른 더 나은 접근 방법이 있습니까? – hemachandran

+0

@hemachandran 몇 가지 설명으로 내 대답을 편집했습니다. – GmG

관련 문제