【发布时间】:2012-09-07 00:41:56
【问题描述】:
我正在运行一个 ASP.net MVC 3 Web 应用程序,并使用 Membership Provider。我想知道是否可以允许用户(或管理员)更改现有帐户的用户名?我还没有找到一种方法来做到这一点。用户名不是电子邮件地址,但在我尝试分配新名称之前验证了其唯一性。
任何帮助将不胜感激!
【问题讨论】:
标签: asp.net asp.net-mvc-3 asp.net-membership
我正在运行一个 ASP.net MVC 3 Web 应用程序,并使用 Membership Provider。我想知道是否可以允许用户(或管理员)更改现有帐户的用户名?我还没有找到一种方法来做到这一点。用户名不是电子邮件地址,但在我尝试分配新名称之前验证了其唯一性。
任何帮助将不胜感激!
【问题讨论】:
标签: asp.net asp.net-mvc-3 asp.net-membership
会员提供者不提供更新用户名的方法。您将需要扩展成员资格提供程序 UpdateUser 方法或直接与成员资格表交互以允许此更改。无论您如何处理,请记住一些事项
更新时,您需要检查用户名的唯一性,就像创建用户时发生的情况一样。
如果用户已登录并更改了他们的用户名,您将需要强制他们注销并重新登录或重新发出 AuthenticationTicket cookie。原因是,如果他们更改了用户名,则 authTicket cookie 存储的用户名和实际用户名不再匹配。如果您使用HttpContext.Identity.User.Name 查询您的数据存储区或检查对内容的授权,您将不再返回任何结果,因为该用户名不再存在。
【讨论】: