5

我正在运行一个 ASP.net MVC 3 Web 应用程序,并使用 Membership Provider。我想知道是否可以允许用户(或管理员)更改现有帐户的用户名?我还没有找到一种方法来做到这一点。用户名不是电子邮件地址,而是在我尝试分配新名称之前验证其唯一性。

任何帮助,将不胜感激!

4

1 回答 1

7

会员提供者不提供更新用户名的方法。您将需要扩展成员资格提供程序 UpdateUser 方法或直接与成员资格表交互以允许此更改。无论您如何处理,请记住几项

  1. 更新时,您需要检查用户名的唯一性,就像创建用户时发生的情况一样。

  2. 如果用户已登录并更改其用户名,您将需要强制他们注销并重新登录或重新发出 AuthenticationTicket cookie。原因是,如果他们更改用户名,则 authTicket cookie 存储的用户名和实际用户名不再匹配。如果您使用HttpContext.Identity.User.Name查询数据存储或检查内容授权,您将不再返回任何结果,因为该用户名不再存在。

于 2012-09-13T22:02:59.787 回答