为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
富国沪深 2019-12-10 09:08:03
如何获取MVC 5中当前登录用户的ID ?我尝试了StackOverflow建议,但它们似乎不适用于MVC 5。另外,将素材分配给用户的MVC 5最佳实践是什么?(例如,User应该有Items,我应该存储在用户Id的Item?我可以扩展User与类List<Item>导航属性?我正在使用MVC模板中的“个人用户帐户”。
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

取得ID非常简单,您已经解决了。


不过,您的第二个问题涉及更多。


因此,这些都是现在的预发行版本,但是您面临的常见问题是要使用新属性(或您所质疑的Items集合)扩展用户。


开箱即用,您会得到一个IdentityModel位于Models文件夹下的文件(在撰写本文时)。在那儿有几节课。ApplicationUser和ApplicationDbContext。要添加您的收藏集,Items您将需要修改ApplicationUser类,就像您在实体框架中使用的是普通类一样。实际上,如果您快速浏览一下,您会发现所有与身份相关的类(用户,角色等)现在都是带有适当数据注释的POCO,因此它们在EF6中可以很好地发挥作用。


接下来,您需要对AccountController构造函数进行一些更改,以使其知道使用您的DbContext。


public AccountController()

{

    IdentityManager = new AuthenticationIdentityManager(

    new IdentityStore(new ApplicationDbContext()));

}

现在,老实说,为您的登录用户获取整个用户对象有些深奥。


    var userWithItems = (ApplicationUser)await IdentityManager.Store.Users

    .FindAsync(User.Identity.GetUserId(), CancellationToken.None);

该行将完成工作,您将可以根据需要进行访问userWithItems.Items。


高温超导



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 290 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信