0

我的问题是,使用 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 为空。

有人可以帮我解决这个问题吗?先感谢您。

4

1 回答 1

0

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

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

您可以在此处阅读有关访问和自定义 UserProfile 的更多信息

这里还有一篇关于为 SimpleMembership 设置密码重置的文章,这里有源代码

于 2013-09-11T16:59:29.967 回答