MVC 5 - 通过用户 ID 获取任何用户名
本文关键字:用户 ID 获取 任何 MVC | 更新日期: 2023-09-27 18:31:47
>我有一个 MVC 5 应用程序,它有一组对象,这些对象引用回使用从以下位置获得的值创建它们的用户:
User.Identity.GetUserId();
问题是我需要能够在任何时候解析该帐户的用户名,以便在查看给定对象时可以向用户显示该用户名。
为了清楚起见:我有一个存储的对象,其属性是UserId。我在创建时从上面的代码中获得了该值。其他人现在已登录,并且需要知道与该存储对象的用户 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#不够了解,无法发布该代码;也许其他人可以做到这一点。无论如何,它对我有用。