我正在使用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
检索用户对象的情况下修复它?
我最终创建了一个过滤器,该过滤器使用包含的所有导航属性查询用户并将其存储到HttpContext.Items(每个查询集合)。
与其使用 ASP.NET 核心身份,您是否探索过类似cookie中间件的选项?
您可以使用 .Includes()
运行自己的查询并获取导航属性,然后构建自己的ClaimsPrincipal
。