在ASP.NET MVC的默认会员资格提供程序中保存电子邮件更改

10

我正在尝试在ASP.NET MVC 3中使用Membership Provider设置和保存电子邮件更改。 我不知道如何正确设置和更改Membership Provider中的电子邮件属性。

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 = email; System.Web.Security.Membership.UpdateUser(u); --虽然我声望太低无法在8小时内回答自己的问题。 - Ecnalyr
2个回答

17

尝试使用UpdateUser:

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

谢谢。System.Web.Security.Membership.UpdateUser(u); - Ecnalyr
我也和@Lakshay一样遇到了同样的问题。这并没有更新我的用户会员信息。 - Eric K

0

我想强调一点,这是在@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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接