You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET Core MVC脚手架生成的Identity中,如何修改_loginPartial.cshtml以显示自定义用户数据而非用户名?

解决方法

没问题,我来一步步帮你搞定这个需求:

首先,你需要调整视图里注入的UserManager和SignInManager的泛型类型——因为现在你的用户实体是自定义的ApplicationUser,而不是默认的IdentityUser,必须匹配类型才能访问自定义属性。

然后,通过异步方法获取当前登录的ApplicationUser实例,就能拿到你添加的FirstName属性了。

修改后的完整_LoginPartial.cshtml代码:

@using Microsoft.AspNetCore.Identity
@using MonitoringFinances.Models  <!-- 记得引入ApplicationUser所在的命名空间 -->
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
<ul class="navbar-nav">
    @if (SignInManager.IsSignedIn(User)) {
        @{
            // 异步获取当前登录的自定义用户实例
            var currentUser = await UserManager.GetUserAsync(User);
        }
        <li class="nav-item">
            <a id="manage" class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">
                <!-- 加个空值判断,避免FirstName为空时页面报错 -->
                Hello @(currentUser?.FirstName ?? 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(&quot;Index&quot;, &quot;Home&quot;, new { area = &quot;&quot; })">
                <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>

额外检查项:

确保你在项目的服务配置文件(比如Program.cs)中,已经正确配置Identity使用自定义的ApplicationUser,示例代码如下:

builder.Services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();

内容的提问来源于stack exchange,提问作者Bipal Goyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:42:48