如何在asp.net mvc中查找模型中的当前用户

时间:2016-10-04 14:25:15

标签: c# asp.net-mvc

我有一个消息表和另一个messageviews表。我希望向单个用户显示未读消息。通过我的消息表,我发送了一个新字段,查看当前消息是否存在任何消息视图。如果他们这样做,那么我的Viewed bool应该返回true,否则为false(如果他们没有查看该消息)。一切正常,除了我无法像往常一样找不到User.Identity.GetUser()的当前登录用户。我也添加了正确的用法。模型中是否存在限制此类呼叫的限制。如果是这样,我如何在模型中找到当前用户?

    public bool Viewed
    {
        get
        {
            ApplicationDbContext db = new ApplicationDbContext();
            //var _userId = User.Identity.GetUserId(); 
            var _userId = Thread.CurrentPrincipal.Identity.GetUserId();
            List<MessageView> m_List = db.MessageView.Where(u => u.UserId == _userId && u.MessageId == O_MessageId).ToList();
            var count = m_List.Count();
            if (count >= 1)
            {
                return true;
            }
            else
            {
                return false;
            }

        }
    }

已解决:在控制器外部,您可以找到当前用户 -

var _userId = System.Web.HttpContext.Current.User.Identity.GetUserId();

1 个答案:

答案 0 :(得分:0)

在控制器外部,您可以找到当前用户: var _userId = System.Web.HttpContext.Current.User.Identity.GetUserId();