我正在运行ASP.net MVC 3 Web应用程序,并使用成员资格提供程序。我想知道是否可以允许用户(或管理员)更改现有帐户的用户名?我还没有办法做到这一点。用户名不是电子邮件地址,但在我尝试分配新名称之前,它的唯一性已经过验证。
任何帮助将不胜感激!
答案 0 :(得分:7)
会员提供商不提供更新用户名的方法。您将需要扩展成员资格提供程序UpdateUser方法或直接与成员资格表交互以允许此更改。无论如何,请记住一些项目
在更新时,您需要检查用户名的唯一性,就像创建用户时所发生的那样。
如果用户已登录并更改其用户名,您将需要强制他们注销并重新登录或重新发出AuthenticationTicket cookie。原因是,如果他们更改了用户名,那么authTicket cookie存储用户名和实际用户名不再匹配。如果您使用HttpContext.Identity.User.Name
查询数据存储区或检查内容授权,则不会再返回任何结果,因为该用户名已不再存在。