Как получить значение свойства с учетом динамического объекта в 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 с самого начала?