使用所有导航属性检索身份用户

时间:2017-01-28 07:30:30

标签: .net asp.net-core asp.net-identity

我正在使用ASP.NET Web Api Core中的身份验证,并且在某些时候我会处理用户数据:

var user = await _userManager.GetUserAsync(HttpContext.User);
...
var userLogins = await _userManager.GetLoginsAsync(user);
...
var userClaims = await _userManager.GetClaimsAsync(user);
...

问题是GetUserAsync没有加载导航属性,因此我必须在之后手动加载它们。有没有办法解决它而不直接通过DataContext检索用户对象?

2 个答案:

答案 0 :(得分:1)

我最终创建了一个过滤器,用于查询包含所有导航属性的User,并将其存储到HttpContext.Items(每个查询集合)。

答案 1 :(得分:0)

不是使用ASP.NET核心标识,而是使用cookie middleware

等方法探索了选项

您可以使用.Includes()运行自己的查询并获取导航属性,然后构建自己的ClaimsPrincipal