gpt4 book ai didi

asp.net - 在 PartialView 中获取当前的 ApplicationUser

转载 作者:行者123 更新时间:2023-12-01 10:51:09 24 4
gpt4 key购买 nike

新的 MVC 5 项目具有显示当前用户名的 _LoginPartial:

@Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", 
"Manage",
"Account",
routeValues: null,
htmlAttributes: new { title = "Manage" })

我已将姓氏/名字字段添加到 ApplicationUser 类,但找不到显示它们而不是 UserName 的方法。有没有办法访问 ApplicationUser 对象?我尝试过直接转换 (ApplicationUser)User 但它会生成错误的转换异常。

最佳答案

  1. 在MVC5中,Controller.UserView.User,返回的是GenericPrincipal实例:

    GenericPrincipal user = (GenericPrincipal) User;
  2. User.Identity.Name 有用户名,你可以用它来检索 ApplicationUser

  3. C# 具有很好的扩展方法特性。对其进行探索和试验。

使用下面的示例,涵盖对当前问题的一些理解。

public static class GenericPrincipalExtensions
{
public static ApplicationUser ApplicationUser(this IPrincipal user)
{
GenericPrincipal userPrincipal = (GenericPrincipal)user;
UserManager<ApplicationUser> userManager = new UserManager<Models.ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
if (userPrincipal.Identity.IsAuthenticated)
{
return userManager.FindById(userPrincipal.Identity.GetUserId());
}
else
{
return null;
}
}
}

关于asp.net - 在 PartialView 中获取当前的 ApplicationUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com