0

저는 Steve Sandersons MVC2 서적을 따르고 간단한/사용자 정의 MembershipProvider를 구현했습니다. 유효한 사용자가 하드 코딩 된 것은 아닙니다. 내 질문에 어떻게 내 "프로필"SQLServer 테이블에 대해 유효성을 검사 할 수 있습니까?간단한/사용자 정의 MembershipProvider 구현에 대한 도움말

PS - 나는 EF 4.1 코드 먼저

아래를 참조하십시오 사용하고 있습니다 :

public class Profile 
{ 
    [Key] 
    public int UserId { get; set; } 

    [Required] 
    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 
} 

public class SimpleMembershipProvider : MembershipProvider 
{ 
    private static List<Profile> Members = new List<Profile> 
    { 
     new Profile { UserId = 1, UserName = "admin", Password = "qwerty123" } 
    }; 

    public override bool ValidateUser(string username, string password) 
    { 
     return Members.Exists(m => (m.UserName == username) && (m.Password == password)); 
    } 

답변

1

당신은 당신의 사용자 보안 데이터 테이블을 확인해야합니다.

사용자 이름 테이블 :

UserID UserName 
1   alex 
2   john 

UserSecurityDetails 테이블 : 다음 시작을위한 두 테이블의

그런 다음 해당 테이블 주위에 (A UserObjectContext을) 모델을 만들고 싶어
UserID Password 
1   qwerty123 
2   password1 

. 사용자 ID간에 ​​연관이 있어야합니다.

그런 다음 해당 모델을 사용하여 방법을 검증 할 수 있습니다. 다음과 같음 :

public override bool ValidateUser(string username, string password) 
{ 
    using(var context = new UserObjectContext()) 
    { 
     return context.UserNames.Any(u => u.UserName == username && u.UserSecurityDetails.Password == password); 
    } 
} 
+0

안녕하십니까. 그래서 두 개의 테이블이 필요합니까? 내 "공용 클래스 프로필"에서 설명하는 기존의 "프로필"테이블을 사용할 방법이 없습니까? 감사합니다. –

+0

아니요. 두 개의 테이블을 가지고 있지만 그 중 하나만 사용하면됩니다. 프로필 엔티티는 자동으로 생성되기 때문에 데이터를 모델링 할 때 찾을 수 있으므로 실제로 해당 클래스를 작성하지 않아도됩니다. – BritishDeveloper

+0

알았어, 고마워. 너에게 조금 더 도움이되는 웹 링크가 없다고 생각하지 않니? 감사합니다. –

관련 문제