Identity 3.1 - 更改电子邮件时用户名被更改,可以避免这种情况吗?

Identity 3.1 - when changing email the user name gets changed, can this be avoided?

默认 ASP .NET Core 3.1 Identity 将电子邮件和用户名几乎混合在一起。我在 LoginRegistration 页面中将它们分开,方法是将它们生成到我的项目中并手动修改它们。但是 Change email 将用户名设置为新电子邮件。我可以使用一些全局标志来修复这种奇怪的行为吗?如果不是,我需要手动生成和修改哪些页面才能正确?

您所描述的行为并未内置于 ASP.NET Core Identity 中,而是内置于默认 Identity UI 中,即提供用于管理身份的默认页面的页面。身份系统本身在这里是完全透明的,始终分别处理用户名和电子邮件地址。

然而,这也意味着您无法神奇地更改某些身份设置以正确拆分它。相反,您必须为此编辑 UI。除非我遗漏了什么,默认身份 UI 的以下页面同时设置了用户名和电子邮件地址:

  • Register.cshtml: 当用户注册时。
  • ExternalLogin.cshtml:当用户通过外部提供商注册时。
  • ConfirmEmailChange.cshtml:当用户通过更改令牌确认电子邮件更改时。