我正在我的应用程序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;
}
}