我有一个MVC 5应用程序,它具有一组引用回创建它们利用所获得的值的用户对象:MVC 5 - 通过用户ID得到任何的用户名
User.Identity.GetUserId();
的问题是我需要能够在任何时候解析该帐户的用户名,以便在查看给定对象时可以向用户显示该用户名。
为了清楚:我有一个存储的对象,该对象的属性是用户标识。我在创建时从上面的代码中获得了该值。现在有人正在登录,需要知道与该存储对象的用户名关联的用户名。
我有一个MVC 5应用程序,它具有一组引用回创建它们利用所获得的值的用户对象:MVC 5 - 通过用户ID得到任何的用户名
User.Identity.GetUserId();
的问题是我需要能够在任何时候解析该帐户的用户名,以便在查看给定对象时可以向用户显示该用户名。
为了清楚:我有一个存储的对象,该对象的属性是用户标识。我在创建时从上面的代码中获得了该值。现在有人正在登录,需要知道与该存储对象的用户名关联的用户名。
这不是没有查找到您的用户信息存储工作。
你可能需要考虑执行,在一个HTML帮助查找使用它在任何你需要它。
如果您使用的是OR映射器,你的目标应该是与你的初始查询加入了真正的用户。
感谢亚历山大,我认为这将是必然的。我已将ASP身份表和网站的其他部分分开,但似乎需要一个硬链接或助手。你有我的感谢。同样给别人。 – 2014-11-24 14:14:08
使用Session
Session["Username"] = data.Username;
那会不会是当前用户呢?我从拥有上面获得的用户标识的角度来谈论,但没有人或其他人可以登录。 – 2014-11-24 14:02:41
这是一个古老的职位,但我碰到它与作为运了同样的问题。在他自己的岗位上做出了评论运说:
assumed ... Identity framework would have ... quick access ... of doing this
我相信框架实际上有何运一直在寻找,但我不能肯定它会被称为快。
当UserManager是设置有访问方法称为
FindByName(username)
我以前的答案在这SO C# post到的线索我找到这个方法。这篇文章解释了如何去另一种方式,即从UserID获取UserName,但是一旦UserManager被设置,就会有许多可以使用的Find ...方法,包括上面提到的方法,这就是op正在寻找。
的的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#以及足够发布的代码;也许别人可以做到这一点。无论如何,它为我工作。
你能不能使用LINQ查询只是分贝? – jbutler483 2014-11-24 14:07:11
谢谢jbutler。这是我的后备。我不想直接从控制器那里做出来或保持关注分开,它需要一个新的存储库类等我只是想通过这种需求将是相当普遍的,并会有一个方法调用用户内/身份框架。 – 2014-11-24 14:10:50
这不是你退回,你将*有*查询数据集,以便相互参照,ID与名称 - 或保存名称,而不是(不是最安全的选择记) – jbutler483 2014-11-24 14:12:43