在学习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;
是否有更清洁或更有效的方法?没有异步方法就可以了吗?
答案 0 :(得分:2)
新的身份api旨在异步,因此您正确地执行此操作。
你可以把它写成一行:
User user = await Users.Find(User.Identity.GetUserId()) as User;
在RTM中它会稍微改变一点,但它的要点是相同的,除了Manager将有一个通用的,所以你不必做演员,看起来更像:
User user = await Users.FindAsync(User.Identity.GetUserId())