即使电子邮件存储在数据库中,MembershipUser.Email也会返回null

时间:2013-09-10 19:03:30

标签: c# asp.net asp.net-mvc-4 simplemembership membershipuser

我的问题是,当使用Membership.GetUser(用户名)方法时,我无法访问用户的电子邮件。 当我重置密码时我需要它。我在POST请求中收到用户名。 我的代码如下所示:

...
System.Web.Security.MembershipUser user = System.Web.Security.Membership.GetUser(model.UserName);
    if (user != null)
     {   
         string emailAddress = user.Email;
...

我确信我尝试重置密码的用户将电子邮件存储在数据库中,但是当我想要检索它时,user.Email为空。

有人可以帮我解决这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您使用的方法是传统的ASP.NET成员资格,而不是SimpleMembership。以下是从SimpleMembership获取该信息的方法。

var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
var email = user.Email;

你可以read more about accessing and customizing UserProfile here

还有article on setting up password reset for SimpleMembership heresource code is available here