我正在创建一个新的 ASP.NET Core (2.2) 网站。默认情况下,用户名和电子邮件地址是相同的。我想让他们与众不同。当我尝试将该用户重新登录网页时,问题就出现了。
我搭建了注册身份页面的脚手架,并对隐藏的代码以及 Razor 页面本身进行了一些简单的更改(见下文)。我还搭建了登录页面的支架,但我认为我不需要在那里进行任何更改,因为我同意人们仍然使用他们的电子邮件地址登录。
以下是对 Register.cshtml.cs 页面的编辑。
我将其添加到 InputModel 类中:
[Required]
[StringLength(256, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 5)]
[DataType(DataType.Text)]
[Display(Name = "User Name")]
public string UserName { get; set; }
Run Code Online (Sandbox Code Playgroud)
我还在 OnPostAsync 方法中更改了用户
var user = new IdentityUser { UserName = Input.UserName, Email = Input.Email };
Run Code Online (Sandbox Code Playgroud)
其他一切都是默认的。
在页面本身上,我只是将其添加到电子邮件下方:
<div class="form-group">
<label asp-for="Input.UserName"></label>
<input asp-for="Input.UserName" class="form-control"/>
<span asp-validation-for="Input.UserName" class="text-danger"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望用户能够正常登录,唉。我收到的错误只是“无效的登录尝试”。令人烦恼的是,我在进行任何更改之前创建的用户仍然可以正常登录。所以我的直觉告诉我,注册页面上有一些有趣的东西,我只是不确定在哪里。