3

내 사이트의 관리자가 회원을 잠글 수 있지만 기본 mvc 회원의 IsLockedOut()은 읽기 전용으로 설정해야합니다. 나는 커스텀 멤버십 제공자를 생성 할 필요가 있다는 것을 알았지 만, 그것이 무엇을 의미하는지 완전히 확신 할 수는 없다. membershipUser 속성을 사용하여 새 모델을 만들어야합니까? 가능하면 데이터베이스에 새 테이블을 만들고 싶지 않습니다.MVC3 회원 가입 사용자 잠금

public static void LockUser(this MembershipUser user) 
    { 
     using (var db = new MovieContext()) 
     { 
      Guid userid = (Guid)user.ProviderUserKey; 
      MembershipUser member = Membership.GetUser(userid); 
      member.IsLockedOut = true; 
      member.LastLockoutDate = DateTime.Now; 
      db.SaveChanges(); 
     } 
    } 
+0

@SLaks가 지적한대로 aspnet_Membership 테이블에는 IsLockeOut이라는 부울이 있습니다. 그걸 사실로 설정하십시오. –

+0

나는 그것을 시도했다 - 그것은 읽기 전용이다. – Andrew

+0

회원 개체가 아닙니다. 데이터베이스 필드. –

답변

6

앤드류는,이 방법을 시도 : 여기

내가 내 LOCKUSER 방법에 대해 가지고있는 코드입니다. IsLockedOut 대신 IsApproved를 사용합니다. 구현시 IsAproved를 사용하지 않는 경우이 방법이 좋은 해결책이 될 수 있습니다.

MembershipUser muUser = Membership.GetUser(strUsernameToActOn); 
muUser.IsApproved = false; 
Membership.UpdateUser(muUser); 

이것은 사용자를 정확하게 잠그는 것은 아닙니다. 전문적으로이 전화는 사용자로부터 승인 된 상태를 가져오고 로그인 할 수 없게 만듭니다.

+0

그게 작동하고 그것을 내려 오면 그 방법을 사용하지만 IsLockedOut = true로 설정하고 lockoutdate를 현재 시간으로 설정하는 것을 선호합니다. – Andrew

+0

@Andrew, 당신은 db에 가야 할 것입니다. 난 끝냈어. EF에 대해 더 자세히 배우고 자신 만의 방법을 구현하십시오. –

+0

감사합니다. 좀 더 살펴 보겠습니다. – Andrew