MVC 5 - 通过用户 ID 获取任何用户名

本文关键字:用户 ID 获取 任何 MVC | 更新日期: 2023-09-27 18:31:47

>我有一个 MVC 5 应用程序,它有一组对象,这些对象引用回使用从以下位置获得的值创建它们的用户:

User.Identity.GetUserId();

问题是我需要能够在任何时候解析该帐户的用户名,以便在查看给定对象时可以向用户显示该用户名。

为了清楚起见:我有一个存储的对象,其属性是UserId。我在创建时从上面的代码中获得了该值。其他人现在已登录,并且需要知道与该存储对象的用户 ID 关联的用户名。

MVC 5 - 通过用户 ID 获取任何用户名

如果不查找用户信息的存储位置,这将不起作用。

您可以考虑在 HTML 帮助程序中实现该查找,以便在需要它的地方使用它。

如果您使用的是OR-Mapper,则应将真实用户与初始查询连接起来。

使用 Session

 Session["Username"] = data.Username;

这是一篇旧帖子,但我遇到了与操作相同的问题。 他在对自己的帖子发表的评论中说:

assumed ... Identity framework would have ... quick access ... of doing this

我相信该框架确实具有操作所寻找的内容,尽管我不确定它会被称为快速。

设置用户管理器时,可以访问名为

FindByName(username)

我使用了这篇 SO C# 文章中的答案来提示我找到这种方法。 那篇帖子解释了如何走另一条路,即从用户ID中获取用户名,但是一旦设置了UserManager,就会有许多查找...可以使用的方法,包括上面提到的操作正在寻找的方法。

用户管理器可以在 vb.net 中按如下方式设置

Using appDb As New ApplicationDbContext
  Dim userStore = New UserStore(Of ApplicationUser)(appDb)
  Dim myUserManager = New UserManager(Of ApplicationUser)(userStore)
  Dim userID = myUserManager.FindByName(userName)
End Using

我对C#不够了解,无法发布该代码;也许其他人可以做到这一点。无论如何,它对我有用。