用户存在于aspnet_membership表中,但getUser仍然返回null

时间:2014-12-16 15:11:21

标签: c# asp.net asp.net-membership

在我的数据库中,我有表aspnet_membership。在应用程序中,我正在实现忘记密码功能。当用户使用此功能时,他显然没有登录。因此用户输入了他无法记住密码的电子邮件地址,在我的代码中,我尝试通过执行以下行来获取正确的MembershipUser对象。代码:

var user = Membership.GetUser(username);

在测试时,我输入和现有的电子邮件地址,但GetUser函数仍然返回null。我确定通过检查表的内容来存在电子邮件地址。我无法弄清楚为什么我仍然得到返回的null值的原因是什么。任何人都可以告诉我为什么GetUser在这种情况下返回null?

1 个答案:

答案 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

如果此查询没有返回任何内容,则表示您的用户名和电子邮件不匹配,或者该用户确实不存在。