我一直关注Steve Sandersons的MVC2书,并实施了一个简单/自定义的MembershipProvider。您不会对有效用户进行硬编码。我的问题是如何根据我的“Profiles”SQLServer表进行验证?
PS - 我正在使用EF 4.1 Code First
请参阅以下内容:
public class Profile
{
[Key]
public int UserId { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string Password { get; set; }
}
public class SimpleMembershipProvider : MembershipProvider
{
private static List<Profile> Members = new List<Profile>
{
new Profile { UserId = 1, UserName = "admin", Password = "qwerty123" }
};
public override bool ValidateUser(string username, string password)
{
return Members.Exists(m => (m.UserName == username) && (m.Password == password));
}
答案 0 :(得分:1)
您需要制作用户安全数据表。这是开始的2个表:
UserNames表:
UserID UserName
1 alex
2 john
UserSecurityDetails表:
UserID Password
1 qwerty123
2 password1
然后,您希望围绕这些表制作模型(制作UserObjectContext)。 userID之间应该存在关联。
然后您可以在验证方法中使用这些模型。类似的东西:
public override bool ValidateUser(string username, string password)
{
using(var context = new UserObjectContext())
{
return context.UserNames.Any(u => u.UserName == username && u.UserSecurityDetails.Password == password);
}
}