MVC 5 - 获取userid的任何用户名

问题描述 投票:0回答:3

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

User.Identity.GetUserId();

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

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

c# visual-studio asp.net-mvc-5
3个回答
2
投票

如果没有查找存储用户信息的位置,这将无法工作。

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

如果您使用OR-Mapper,则应该使用初始查询加入真实用户。


0
投票

使用Session

 Session["Username"] = data.Username;

0
投票

这是一篇很老的帖子,但我遇到了与op相同的问题。在他发表的评论中,他说:

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

我相信该框架实际上确实有op正在寻找的东西,虽然我不确定它会被称为快速。

设置UserManager后,可以访问一个名为的方法

FindByName(username)

我在这个SO C# post中使用了答案,以便找到这个方法。那篇文章解释了如何走另一条路,即从UserID获取UserName,但是一旦设置了UserManager,就会有一些可以使用的Find ...方法,包括上面提到的那个,这就是op正在寻找。

可以在vb.net中按如下方式设置UserManager

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#是否足以发布该代码;或许其他人可以做到这一点。无论如何,它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.