在MembershipProvider中实现自定义“ValidateUser”

时间:2011-03-25 10:32:38

标签: asp.net-mvc asp.net-mvc-3 asp.net-membership membership-provider code-first

我正在实现自定义MembershipProvider,我正在尝试使用ValidateUser方法来验证SQL Server中的Profiles表。此表包含名为UserNamePassword的列。

public override bool ValidateUser(string username, string password)
{
    ??? what to do here???
}

仅供参考,我正在使用MVC3& EF 4.1 Code First。

谢谢

1 个答案:

答案 0 :(得分:2)

如果您使用的是EF 4.1,那么您将拥有某种DbContext对象,其中包含DbSet表的Profiles - 对吧?

所以在这种情况下,请使用:

public override bool ValidateUser(string username, string password)
{
    using(DbContext yourCtx = new DbContext())
    {
        // from your "Profiles" DbSet, retrieve that single entry which
        // matches the username/password being passed in

        var profile = (from p in yourCtx.Profiles
                      where p.UserName == username && p.Password == password
                      select p).SingleOrDefault();

        // if that query returns a "Profile" (is != null), then your
        // username/password combo is valid - otherwise, it's not valid
        return (profile != null);
    }
}