0

在学习 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;

有没有更清洁或更有效的方法来做到这一点?没有异步方法就可以做到吗?

4

1 回答 1

2

新的身份 api 是异步的,所以你做对了。

您可以将其写在一行中:

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

在 RTM 中它会发生一些变化,但它的要点是相同的,除了 Manager 将具有通用性,因此您不必进行演员表并且看起来更像:

User user = await Users.FindAsync(User.Identity.GetUserId())
于 2013-09-09T20:25:25.573 回答