2017-01-28 30 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