如何获得当前用户,以及如何在MVC5中使用User类?

如何获取MVC 5中当前登录用户的ID ?我尝试了StackOverflow建议,但它们似乎不适用于MVC 5。

另外,将素材分配给用户的MVC 5最佳实践是什么?(例如,User应该有Items,我应该存储在用户Id的Item?我可以扩展User与类List<Item>导航属性?

我正在使用MVC模板中的“个人用户帐户”。


富国沪深
浏览 292回答 3
3回答

炎炎设计

取得ID非常简单,您已经解决了。不过,您的第二个问题涉及更多。因此,这些都是现在的预发行版本,但是您面临的常见问题是要使用新属性(或您所质疑的Items集合)扩展用户。开箱即用,您会得到一个IdentityModel位于Models文件夹下的文件(在撰写本文时)。在那儿有几节课。ApplicationUser和ApplicationDbContext。要添加您的收藏集,Items您将需要修改ApplicationUser类,就像您在实体框架中使用的是普通类一样。实际上,如果您快速浏览一下,您会发现所有与身份相关的类(用户,角色等)现在都是带有适当数据注释的POCO,因此它们在EF6中可以很好地发挥作用。接下来,您需要对AccountController构造函数进行一些更改,以使其知道使用您的DbContext。public AccountController(){&nbsp; &nbsp; IdentityManager = new AuthenticationIdentityManager(&nbsp; &nbsp; new IdentityStore(new ApplicationDbContext()));}现在,老实说,为您的登录用户获取整个用户对象有些深奥。&nbsp; &nbsp; var userWithItems = (ApplicationUser)await IdentityManager.Store.Users&nbsp; &nbsp; .FindAsync(User.Identity.GetUserId(), CancellationToken.None);该行将完成工作,您将可以根据需要进行访问userWithItems.Items。高温超导
打开App,查看更多内容
随时随地看视频慕课网APP