Получение пользовательской стоимости заявки от токена-носителя (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()));

Есть ли способ получить доступ к этому дополнительному запросу в контроллере без дополнительной поездки в базу данных?

Ответ 1

Конечно, внутри защищенного контроллера вы делаете следующее:

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