3
要求我做到了像我RC1項目:如何獲得內部Asp.Net核心Razor視圖
User.Claims.ElementAt(#).Value
但經過我切換到RTM將不再工作。當我調試Razor視圖時,該對象看起來相同,但User.Claims只是空的。任何想法可能是什麼原因。
要求我做到了像我RC1項目:如何獲得內部Asp.Net核心Razor視圖
User.Claims.ElementAt(#).Value
但經過我切換到RTM將不再工作。當我調試Razor視圖時,該對象看起來相同,但User.Claims只是空的。任何想法可能是什麼原因。
假設您對當前的委託人附有索賠。在您的剃刀視圖中:
@((ClaimsIdentity) User.Identity)
這會讓您訪問當前用戶的ClaimsIdentity。爲了讓您的索賠保持乾淨,您可能需要創建搜索索賠的擴展方法。
public static string GetSpecificClaim(this ClaimsIdentity claimsIdentity, string claimType)
{
var claim = claimsIdentity.Claims.FirstOrDefault(x => x.Type == claimType);
return (claim != null) ? claim.Value : string.Empty;
}
然後,你可以訪問你想要的任何索賠:
@((ClaimsIdentity) User.Identity).GetSpecificClaim("someclaimtype")
希望這有助於。
在Razor視圖聲明身份快速搜索想出了一個類似的問題和答案: MVC 5 Access Claims Identity User Data
我發現這個問題。我在設置cookie的行中存在拼寫錯誤:HttpContext.Authentication.SignInAsync(「typo here」,new ClaimsPrincipal(auth));.對不必要的工作人員抱歉。 – Sknecht
只是一個建議,它可能是一個壞主意,索引索引索引..可能要使用索賠類型,如在JDupont的答案。 – juunas
你說得對,一旦我們從系統中刪除了一項索賠,它就已經導致出界。這已經是董事會的一項任務,但並沒有圍繞這個任務展開。 – Sknecht