asp.net-mvc - 如何修改 _loginPartial.cshtml 以显示自定义用户数据而不是 UserName?
问题描述
我有一个 .NET Core MVC,我在其中搭建了 Identity。现在,我创建了一个派生自 IdentityUser 类的 ApplicationUser 类,并在其中添加了我的属性,如下所示:
namespace MonitoringFinances.Models
{
public class ApplicationUser : IdentityUser
{
[PersonalData]
public string FirstName { get; set; }
[PersonalData]
public string LastName { get; set; }
}
}
现在,在下面显示的生成的 _loginPartial.cshtml 视图中,我想显示 Hello @FirstName!而不是你好@userName!。
@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 id="manage" class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li>
<li class="nav-item">
<form id="logoutForm" class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home", new { area = "" })">
<button id="logout" type="submit" class="nav-link btn btn-link text-dark">Logout</button>
</form>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link text-dark" id="register" asp-area="Identity" asp-page="/Account/Register">Register</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" id="login" asp-area="Identity" asp-page="/Account/Login">Login</a>
</li>
}
</ul>
有人可以在.NET Core 中帮助这个新手吗?我将不胜感激:)
解决方案
我想到了!
这是我的解决方案:
@if (SignInManager.IsSignedIn(User))
{
ApplicationUser applicationUser = (ApplicationUser) await UserManager.GetUserAsync(User);
var firstName = applicationUser.FirstName;
<li class="nav-item">
<a id="manage" class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @firstName!</a>
我不确定这是否违反 MVC 原则,因为我在视图中做了一些轻微的代码,但它确实有效。让我知道是否有更好的解决方案。
推荐阅读
- python - Scapy: Processing partial TLS segments
- azure - 获取 EWS 和 User.Read.All 的访问令牌
- javascript - functions.database() 和 admin.database() 有什么区别
- redirect - 使用 Google Analytics Pageviews 或 Event 跟踪外向链接?
- django - 检索没有类名的十进制类型的值列表
- javascript - MongoDB和Mongoose - 来自两个不同集合查询的ID不匹配
- r - R选择给定条件的第一个值
- android-studio - 带有 Kotlin 的 Android Studio 在两行中为加号提供“未解决的参考”,但在一行中没有
- laravel - 将 api 数据保存到 db laravel 时出现非法字符串偏移“标题”
- python - 批量大小未知的 TensorFlow 切片问题