问题描述
默认的 ASP .NET Core 3.1身份将电子邮件和用户名混合在一起。通过将它们生成到我的项目中并手动修改它们,在 Login 和 Registration 页面中将它们分开。但是更改电子邮件会将用户名设置为新电子邮件。我可以使用一些全局标志来修复这种奇怪的行为吗?如果没有,我需要手动生成和修改哪些页面才能正确处理?
解决方法
您描述的行为不是内置于ASP.NET Core身份中,而是内置于默认身份 UI 中,默认身份UI是一组页面,这些页面提供了用于管理身份的默认页面。身份系统本身在这里是完全透明的,并且始终分别处理用户名和电子邮件地址。
但是,这也意味着您无法神奇地更改某些“身份”设置来正确拆分此设置。相反,您将必须为此编辑UI。除非我缺少任何内容,否则默认身份UI的以下页面会同时设置用户名和电子邮件地址:
-
Register.cshtml
:用户注册时。 -
ExternalLogin.cshtml
:当用户通过外部提供商注册时。 -
ConfirmEmailChange.cshtml
:当用户通过传递更改令牌确认电子邮件更改时。