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データベースに '[]バイト'の配列を返すが、それは文字列です。 – ridermansb

関連する問題