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? */ 
     } 
    } 

} 

请,有一个完整的文章与这个类的实现S'

+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

相关问题