【问题标题】:Saving an email change within the default Membership Provider in ASP.NET MVC在 ASP.NET MVC 的默认成员资格提供程序中保存电子邮件更改
【发布时间】:2012-05-01 23:13:15
【问题描述】:

我正在尝试在 ASP.NET MVC 3 的成员资格提供程序中设置和保存电子邮件更改。我不知道如何正确设置和更改成员资格提供程序中的电子邮件属性。

MSDN 似乎建议使用 MembershipUser.Email 属性,“获取或设置会员用户的电子邮件地址”,但我不知道如何让它正常工作。

我正在尝试使用此代码:

// change email
MembershipUser u = Membership.GetUser(User.Identity.Name);
u.Email = email; // Is this working as expected?
u.Save();  // this line doesn't do anything - what should it be?
db.Save();  <-- that is what I would do with ordinary database changes, but I don't know what context to use for Membership Provider changes. . .

编辑:

我想通了:

// change email
MembershipUser u = Membership.GetUser(User.Identity.Name);
u.Email = email;
System.Web.Security.Membership.UpdateUser(u);

【问题讨论】:

  • 我想通了://更改电子邮件 MembershipUser u = Membership.GetUser(User.Identity.Name); u.Email = 电子邮件; System.Web.Security.Membership.UpdateUser(u); -- 不过,我的名声太小,无法在 8 小时内回答我自己的问题。

标签: asp.net-mvc asp.net-mvc-3 asp.net-membership membership-provider


【解决方案1】:

尝试更新用户:

var user = Membership.GetUser(id);
user.Email = "new@email.com";
Membership.UpdateUser(user);

【讨论】:

  • 谢谢。 System.Web.Security.Membership.UpdateUser(u);
  • 我也遇到了和@Lakshay 一样的问题。这不会更新我用户的会员信息。
【解决方案2】:

继@Ecnalyr 和@jwaern 之后,我想强调一点。更改电子邮件地址时,直接按如下方式分配电子邮件地址不起作用:

System.Web.Security.Membership.GetUser.email = newEmail '(this won't work)

首先,如上面的响应所示,必须将 MembershipUser 分配给一个变量,然后才能影响该变量上的 UpdateUser。

Dim mu As MembershipUser = System.Web.Security.Membership.GetUser
mu.Email = email
Membership.UpdateUser(mu)

【讨论】:

    猜你喜欢
    • 2010-09-30
    • 2011-03-09
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多