public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { if (HttpMethods.IsPost(context.HttpContext.Request.Method)) { var acmeRequest = _requestProvider.GetRequest(); var acmeHeader = _requestProvider.GetHeader(); await _validationService.ValidateRequestAsync(acmeRequest, acmeHeader, context.HttpContext.Request.GetDisplayUrl(), context.HttpContext.RequestAborted); } await next(); }
public Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext is null) { throw new ArgumentNullException(nameof(bindingContext)); } var acmeHeader = _requestProvider.GetHeader(); bindingContext.Result = ModelBindingResult.Success(acmeHeader); return(Task.CompletedTask); }
public async Task <Account> FromRequestAsync(CancellationToken cancellationToken) { var requestHeader = _requestProvider.GetHeader(); if (string.IsNullOrEmpty(requestHeader.Kid)) { throw new MalformedRequestException("Kid header is missing"); } //TODO: Get accountId from Kid? var accountId = requestHeader.GetAccountId(); var account = await LoadAcountAsync(accountId, cancellationToken); ValidateAccount(account); return(account !); }