3
内の申し立てを受けたために、私は私のようなRC1プロジェクトでそれをやった方法:Asp.Netコアレイザービュー
User.Claims.ElementAt(#).Value
しかし、私はRTMに切り替えた後、それはもう動作しません。 Razorビューをデバッグすると、オブジェクトは同じように見えますが、User.Claimsは空です。どのような理由が考えられるか。
内の申し立てを受けたために、私は私のようなRC1プロジェクトでそれをやった方法:Asp.Netコアレイザービュー
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")
・ホープ、このことができます。私は問題を発見 MVC 5 Access Claims Identity User Data
:
かみそりビューでの請求のアイデンティティのためのクイック検索では、同様の質問と答えを思い付きました。私はクッキーを設定する行にタイプミスがあります:HttpContext.Authentication.SignInAsync( "typo here"、新しいClaimsPrincipal(auth));.不必要な仕事の人には申し訳ありません。 – Sknecht
JDupontの回答のようにクレームタイプを使用したいと思うかもしれません。 – juunas
システムからのクレームを取り除いたら、すでに範囲外になっています。それはすでにボード上の仕事ですが、周りにはジェット機がありません。 – Sknecht