Как получить значение свойства с учетом динамического объекта в HttpActionContext?

У меня есть этот ClaimsValidationFilter, который используется в качестве аннотации для проверки наших утверждений перед выполнением действия API. Это для сравнения претензий и фактических допустимых значений, которые передаются в API.

public class ClaimsValidationFilter : ActionFilterAttribute
{
    public ClaimType ClaimType { get; set; }

    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        var identity = actionContext.RequestContext.Principal.Identity as ClaimsIdentity;
        var claims = identity.Claims.Select(c => new { type = c.Type, value = c.Value });

        if (claims.Any(c => c.type == ValidateClaimType) && actionContext.ActionArguments.ContainsKey(ClaimType.customerId.ToString()))
        {

        }

        base.OnActionExecuting(actionContext);
    }
}

Я должен был получить значение свойства с именем customerId. Однако объекты в actionContext могут отличаться, так как все API-интерфейсы используют эту аннотацию.

Пример:

 [ClaimsValidationFilter(ClaimType = ClaimType.customerId)]
 [Route("customers/user-name-exists")]
 [HttpGet]
 public HttpResponseMessage GetDetails([FromUri] UserNameDto dto)
 {
 //code... ...code
 }

Как я могу получить свойство в actionContext, если я не знаю UserNameDto с самого начала?

0 ответов

Другие вопросы по тегам