public async Task Reject(RejectOpenBankingApiAccountConsentViewModel viewModel, CancellationToken cancellationToken) { var unprotectedUrl = _dataProtector.Unprotect(viewModel.ReturnUrl); await _mediator.Send(new RejectAccountAccessConsentCommand { ConsentId = viewModel.ConsentId }, cancellationToken); var query = unprotectedUrl.GetQueries().ToJObj(); var clientId = query.GetClientIdFromAuthorizationRequest(); var oauthClient = await _oauthClientRepository.FindOAuthClientById(clientId, cancellationToken); query = await _extractRequestHelper.Extract(Request.GetAbsoluteUriWithVirtualPath(), query, oauthClient); var redirectUri = query.GetRedirectUriFromAuthorizationRequest(); var state = query.GetStateFromAuthorizationRequest(); var jObj = new JObject { { ErrorResponseParameters.Error, ErrorCodes.ACCESS_DENIED }, { ErrorResponseParameters.ErrorDescription, OpenID.ErrorMessages.ACCESS_REVOKED_BY_RESOURCE_OWNER } }; if (!string.IsNullOrWhiteSpace(state)) { jObj.Add(ErrorResponseParameters.State, state); } var dic = jObj.ToEnumerable().ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var redirectUrlAuthorizationResponse = new RedirectURLAuthorizationResponse(redirectUri, dic); _responseModeHandler.Handle(query, redirectUrlAuthorizationResponse, HttpContext); }
public async Task <IActionResult> Reject(RejectOpenBankingApiAccountConsentViewModel viewModel, CancellationToken cancellationToken) { await _mediator.Send(new RejectAccountAccessConsentCommand { ConsentId = viewModel.ConsentId }, cancellationToken); return(Redirect(viewModel.CancellationUrl)); }