小编snu*_*sel的帖子

我需要单独保存用户名和电子邮件地址。我在用户注册后登录网站时遇到问题

我正在创建一个新的 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)

我希望用户能够正常登录,唉。我收到的错误只是“无效的登录尝试”。令人烦恼的是,我在进行任何更改之前创建的用户仍然可以正常登录。所以我的直觉告诉我,注册页面上有一些有趣的东西,我只是不确定在哪里。

identity asp.net-core

1
推荐指数
1
解决办法
1745
查看次数

标签 统计

asp.net-core ×1

identity ×1