在我的数据库中,我有表aspnet_membership。在应用程序中,我正在实现忘记密码功能。当用户使用此功能时,他显然没有登录。因此用户输入了他无法记住密码的电子邮件地址,在我的代码中,我尝试通过执行以下行来获取正确的MembershipUser对象。代码:
var user = Membership.GetUser(username);
在测试时,我输入和现有的电子邮件地址,但GetUser函数仍然返回null。我确定通过检查表的内容来存在电子邮件地址。我无法弄清楚为什么我仍然得到返回的null值的原因是什么。任何人都可以告诉我为什么GetUser在这种情况下返回null?
答案 0 :(得分:0)
因为用户名实际上并未存储在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
如果此查询没有返回任何内容,则表示您的用户名和电子邮件不匹配,或者该用户确实不存在。