0
나는 사용자의 확인의 모양을 사용자 정의하고있어

을 사용자에게 검증 Asp.net MVC 3내 응용 프로그램에서 멤버 자격 공급자

어떻게 방법 ValidateUser를 구현할 수있다?

내 문제는 암호 속성이있는 MembershipUser 클래스의 암호 (사용자 지정도 가능)입니다.

나는 다음 코드 EF CodeFirst ..을 사용하고 있습니다 :

MembershipUser

public class User : MembershipUser 
{ 

    public User(string username, object providerUserKey, string email, string passwordQuestion, bool isApproved, 
        bool isLockedOut) 
     : base("", username, providerUserKey, email, passwordQuestion, "", isApproved, isLockedOut, DateTime.Now, DateTime.MinValue, 
       DateTime.Now, DateTime.MinValue, DateTime.MinValue) 
    { 
    } 

} 

는 MembershipProvider

public class UserProvider : MembershipProvider 
{ 

    public override bool ValidateUser(string email, string password) 
    { 
     var bytes = new ASCIIEncoding().GetBytes(password); 
     var encryptedPassword = EncryptPassword(bytes); 
     using (var db = new DataContext()) 
     { 
      var user = from u in db.Users 
         where u.Email == email 
         /* How to compare password? */ 
     } 
    } 

} 

의와 완전한 기사가하십시오 이 클라의 구현 에스?

+0

사용자를 데이터베이스에 추가 할 코드를 추가 할 수 있습니까? –

답변

0

완전한 예제가 없지만 이것이 효과가 없을까요?

public class UserProvider : MembershipProvider 
{ 
    public override bool ValidateUser(string email, string password) 
    { 
     var bytes = new ASCIIEncoding().GetBytes(password); 
     var encryptedPassword = EncryptPassword(bytes); 
     var user = db.Users.FirstOrDefault(x => 
       x.EmailAddress == emailAddress && x.Password == encryptedPassword); 

     return user != null; 
    } 
} 
+0

EncryptPassword는 데이터베이스에서'byte []'배열을 반환하지만 문자열입니다. – ridermansb