【问题标题】:MembershipUser.Email returns null even when email is stored in database即使电子邮件存储在数据库中,MembershipUser.Email 也会返回 null
【发布时间】:2026-02-11 18:20:03
【问题描述】:

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

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

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

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

【问题讨论】:

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


【解决方案1】:

您使用的方法适用于传统的 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

【讨论】:

    最近更新 更多