Asp.net mvc 3 使用成员资格提供程序验证用户

Asp.net mvc 3 使用成员资格提供程序验证用户,asp.net-mvc-3,razor,forms-authentication,membership-provider,custom-membershipprovider,Asp.net Mvc 3,Razor,Forms Authentication,Membership Provider,Custom Membershipprovider,我正在自定义应用程序Asp.net MVC 3中用户的验证形式 如何实现ValidateUser方法 我的问题是MembershipUser类的密码,我还自定义了该类的密码属性 我使用的是EF CodeFirst。。以下代码: 会员资格用户 会员资格提供者 请问,是否有一篇关于此类实现的完整文章?我没有完整的示例,但这对您不起作用吗 public class UserProvider : MembershipProvider { public override bool Validate

我正在自定义应用程序Asp.net MVC 3中用户的验证形式

如何实现ValidateUser方法

我的问题是MembershipUser类的密码,我还自定义了该类的密码属性

我使用的是EF CodeFirst。。以下代码:

会员资格用户

会员资格提供者


请问,是否有一篇关于此类实现的完整文章?

我没有完整的示例,但这对您不起作用吗

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;
    }
}

EncryptPassword返回数据库中字节[]的数组,但它是一个字符串。能否在将用户添加到数据库的位置添加代码?
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? */
        }
    }

}
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;
    }
}