在ASP.NET身份中获取当前用户的快捷方式

时间:2014-10-13 23:04:56

标签: c# asp.net asp.net-mvc performance asp.net-identity

在ASP.NET Identity中获取当前用户的快捷方式(最佳方式)是什么?

我为获取当前用户编写了此代码,但我不知道这是最好的方法吗?

public class MVCController : Controller
{
    public User CurrentUser
    {
        get
        {
            string currentUserId = User.Identity.GetUserId();
            User currentUser = DataContextFactory.GetDataContext().Users.FirstOrDefault(x => x.Id.ToString() == currentUserId);
            return currentUser;
        }
    }
}

2 个答案:

答案 0 :(得分:3)

使用Identity v2,获取用户的最佳方式是使用UserManager对象。

var user = userManager.FindById(user.Identity.GetUserId());

答案 1 :(得分:0)

我们应该在身份验证期间在用户声明中添加所有必需信息,而不是数据库命中,并在下次调用期间从声明中检索它们。这将是获取常用用户信息的最快方法,同时我们避免任何数据库调用。您可以查看一些声明帮助方法Github link