Esempio n. 1
0
        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));
        }