2017-01-28 32 views
0

我在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直接检索用户对象?

+0

您可以直接从ClaimsPrincipal获得声明,但对于其他所有我认为您需要自己处理查询的人 –

回答

0

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

0

不是使用ASP.NET Core Identity,而是使用类似于cookie middleware的东西来探索选项?

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