0

为什么不能更改简单会员用户名。我试过了

MembershipUser memUser = Membership.GetUser(existingUser);
memUser.UserName = model.UserName;
Membership.UpdateUser(memUser);

我知道 MembershipUser.UserName 是只读的。没有其他可用的方法来更改用户名。

有没有办法解决这个问题?

编辑:新问题。当线

 var confirmationToken = WebSecurity.CreateUserAndAccount(model.UserName, Request["Password"], new { NameFirst = model.NameFirst, NameLast = model.NameLast, ContactId = newContact.ContactId },true);

运行时,我得到一个 MembershipCreateUserException 并说用户名已经在使用中(实际上不是)。它设法将用户添加到我的 UserSecurity 表(UserProfile)中,但没有将其添加到成员资格表中。它试图将用户添加到 pages_Membership 表中,而不是我创建的 UserMembership 表中。

4

1 回答 1

1

您可能无法使用 MembershipProvider 编辑用户名。在 SimpleMembership 中,您必须将 UserProfile 表添加到存储用户名的模型中。

您在初始化时指定表:

WebSecurity.InitializeDatabaseConnection("DBname", "UserProfileTable", "IdColumn", "UsernameColumn", autoCreateTables: true);
于 2013-03-11T15:34:54.657 回答