MVC5 - 访问用户对象的最有效方式

时间:2013-09-08 01:58:58

标签: asp.net asp.net-mvc visual-studio-2013 asp.net-mvc-5 asp.net-identity

在学习C#和MVC时,我在VS2013 Preview中使用了股票MVC模板,我正在尝试获取当前记录的User类(模板在IdentityModel.cs文件中创建的内容)的引用在用户(如果适用)或用户ID guid。

目前我有这个(并且它有效),但它似乎有点复杂且可能很昂贵(我不确定它是如何在钩子下工作的。)

IUser iUser = await Users.Find(User.Identity.GetUserId());  //have to reference Microsoft.AspNet.Identity to access the GetUserId method
IUser iUserFromId = await Users.Find("user id guid placeholder");

User user = iUser != null ? (User)iUser : null;

是否有更清洁或更有效的方法?没有异步方法就可以了吗?

1 个答案:

答案 0 :(得分:2)

新的身份api旨在异步,因此您正确地执行此操作。

你可以把它写成一行:

User user = await Users.Find(User.Identity.GetUserId()) as User;

在RTM中它会稍微改变一点,但它的要点是相同的,除了Manager将有一个通用的,所以你不必做演员,看起来更像:

User user = await Users.FindAsync(User.Identity.GetUserId())