web-dev-qa-db-ja.com

ベアラートークンからのカスタムクレーム値の取得(Web API)

私のASP.NET Web APIプロジェクトでは、ベアラートークン認証を使用しており、次のようにカスタムクレームを追加しています。

var authType = AuthConfig.OAuthOptions.AuthenticationType;
var identity = new ClaimsIdentity(authType);
identity.AddClaim(new Claim(ClaimTypes.Name, vm.Username));

// custom claim
identity.AddClaim(new Claim("CompanyID", profile.CompanyId.ToString()));

データベースに余分にアクセスすることなく、コントローラーでこの追加のクレーム値にアクセスできる方法はありますか?

20
Impworks

確かに、保護されたコントローラー内で次のことを行います。

 ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
 var customClaimValue = principal.Claims.Where(c => c.Type == "CompanyID").Single().Value;
29
Taiseer Joudeh