Я использовал Identity в .NET Core 2.1.Приложение MVC и у меня есть одна проблема.Пока я использовал встроенный класс IdentityUser, мой _ManageNav работает хорошо: когда я нажимал на UserName, в левой части моего приложения я видел меню ManageNav.Но я должен указать свой собственный класс, потому что у меня должен быть список для пользователей:
public class MyAppUser : IdentityUser
{
public ICollection<Recipe> Recipes { get; set; }
}
Конечно, я изменяю при запуске информацию о классе:
services.AddIdentity<MyAppUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Также добавляю отправителя почты,потому что у меня была ошибка с этим:
services.AddTransient<IEmailSender, MyAppMailSender>();
Мой _ManaveNav практически встроен, мне не нужно было ничего менять, потому что сначала я хотел настроить свой собственный класс, это мой _ManageNav:
@inject SignInManager<IdentityUser> SignInManager
@{
var hasExternalLogins = (await SignInManager.GetExternalAuthenticationSchemesAsync()).Any();
}
<div class="menu-left">
<ul class="nav nav-pills nav-stacked">
<li class="@ManageNavPages.IndexNavClass(ViewContext)"><a asp-page="./Index">Profile</a></li>
<li class="@ManageNavPages.ChangePasswordNavClass(ViewContext)"><a id="change-password" asp-page="./ChangePassword">Password</a></li>
@if (hasExternalLogins)
{
<li class="@ManageNavPages.ExternalLoginsNavClass(ViewContext)"><a id="external-login" asp-page="./ExternalLogins">External logins</a></li>
}
<li class="@ManageNavPages.TwoFactorAuthenticationNavClass(ViewContext)"><a asp-page="./TwoFactorAuthentication">Two-factor authentication</a></li>
<li class="@ManageNavPages.PersonalDataNavClass(ViewContext)"><a asp-page="./PersonalData">Personal data</a></li>
</ul>
</div>
Я пытался с IdentityUser или MyAppUser в первой строке (@inject), но всегда у меня есть меню по умолчанию, которое у меня обычно в приложении.Макет моей личности:
@{
Layout = "/Areas/Identity/Pages/_Layout.cshtml"; }
<h2>Manage your account</h2>
<partial name="_MenuTop" />
<div class="all">
<partial name="_ManageNav" />
<div class="content">
@RenderBody()
</div>
<partial name="_MenuRight" />
<div class="clearfix"></div>
</div>
@section Scripts {
@RenderSection("Scripts", required: false)
}
Может быть, у кого-то из вас есть эта проблема в вашем приложении?Я думаю, что с ManageNav и Layout все в порядке, потому что в версии, где я использую IdentityUser, ManageNav прекрасно работает.
С уважением, Камиль