В моей базе данных у меня есть таблица aspnet_membership. В приложении я реализую функцию забытого пароля. Когда пользователь использует эту функцию, он, очевидно, не вошел в систему. Таким образом, пользователь вводит свой адрес электронной почты, о котором он не может запомнить пароль, и в моем коде я пытаюсь получить правильный объект MembershipUser, выполнив эту строку код:
var user = Membership.GetUser(username);
Во время тестирования я ввожу и существующий адрес электронной почты, но функция GetUser по-прежнему возвращает null. Я уверен, что адрес электронной почты существует, проверяя содержимое таблицы. Я не могу понять, в чем причина, почему я все еще получаю возвращаемое значение null. Может ли кто-нибудь сказать мне, почему GetUser возвращает null в этом сценарии?
Поскольку имя пользователя фактически не хранится в таблице aspnet_membership (при условии реализации по умолчанию) - имя пользователя находится в aspnet_users
.
Я попытался бы сделать следующее и увидеть, получится ли результат:
declare @email nvarchar(50)
set @email = N'whateveremailyouarehavingproblemswith'
select *
from aspnet_membership m
inner join aspnet_users u on m.userId = u.userId
where m.email = @email
and u.username = @email
если ничто не возвращается из этого запроса, то либо ваши имена пользователей, и электронные письма не совпадают, или что пользователь действительно не существует.