Попытка установить имя пользователя при регистрации нового пользователя из Input.UserName и не использовать Input.Email. После долгих исследований самый тщательный пост, хотя и немного устаревший, был здесь
, который я использую: Microsoft Visual Studio Community 2019 Version 16.5.3; ASP. NET Веб-фреймворки и инструменты 2019 16.5.236.49856; ASPNETCore 3.1.3
Конечно, большинство элементов Identity не отображаются, но после этой записи более чем на полпути вниз вы можете увидеть, как открыть представление и класс Register (который теперь отображается в разделе Области проекта, а не в представлениях)
Добавлен в файл класса Register.cs html InputModel
, чтобы затем он был доступен для Register.cs html .cs
[Required]
[Display(Name = "Name")]
public string UserName { get; set; }
В файл Register.cs html добавлен файл:
<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>
Установить <IdentityOptions>
требования в Startup.cs services.Configure<IdentityOptions>(options =>
из этой записи
Наконец в Register.cs html Я изменил его с / на:
var user = new IdentityUser { UserName = Input.Email, Email = Input.Email };
var user = new IdentityUser { UserName = Input.UserName, Email = Input.Email };
Я запускаю программу и регистрирую нового пользователя. Он вводится в БД, но на странице не отображается sh, показывающий имя пользователя, вошедшего в систему. В _LayoutPartial.cs html в View / Shared у меня есть
@using Microsoft.AspNetCore.Identity
@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager
<ul class="navbar-nav">
@if (SignInManager.IsSignedIn(User))
{
<li class="nav-item">
<a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @User.Identity.Name!</a>
Пользователь пуст и поэтому никогда не вводит этот код; но также @User.Identity.UserName
недоступен.