Реализация пользовательского «ValidateUser» в MembershipProvider - PullRequest
1 голос
/ 25 марта 2011

Я реализую пользовательский MembershipProvider и пытаюсь получить метод ValidateUser для проверки моей таблицы Profiles в SQL Server.В этой таблице есть столбцы с именами UserName и Password.

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

К вашему сведению, сначала я использую код MVC3 и EF 4.1.

Спасибо

Пол

1 Ответ

2 голосов
/ 25 марта 2011

Если вы используете 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);
    }
}
...