#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces')

## IAuthorizationResponseBuilder Interface

Contributes one response\-type component to the authorization endpoint's success response\.
Each implementation owns a single value of the OAuth 2\.0 / OIDC `response_type` parameter
\(for example `code`, `token`, or `id_token`\) and populates the corresponding
field on the running [SuccessfullyAuthenticated](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.SuccessfullyAuthenticated') result\.

```csharp
public interface IAuthorizationResponseBuilder : Abblix.Oidc.Server.Common.Interfaces.IGrantTypeInformer
```

Derived  
↳ [AuthorizationCodeBuilder](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationCodeBuilder 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.AuthorizationCodeBuilder')  
↳ [IdTokenResponseBuilder](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ImplicitFlow.IdTokenResponseBuilder 'Abblix\.Oidc\.Server\.Features\.ImplicitFlow\.IdTokenResponseBuilder')  
↳ [TokenResponseBuilder](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ImplicitFlow.TokenResponseBuilder 'Abblix\.Oidc\.Server\.Features\.ImplicitFlow\.TokenResponseBuilder')  
↳ [NoneResponseBuilder](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.NoneFlow.NoneResponseBuilder 'Abblix\.Oidc\.Server\.Features\.NoneFlow\.NoneResponseBuilder')

Implements [IGrantTypeInformer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IGrantTypeInformer 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IGrantTypeInformer')

### Remarks
The processor \([IAuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestProcessor')\) is a composite over the registered
processors: the orchestration logic \(auth\-session selection, consent, scope checks\) lives in the
processor; per\-response\-type generation lives here\. Implicit Flow / Hybrid Flow support is
expressed by registering `token` and `id_token` processors\. Without those registrations
the corresponding response types simply do not exist in the DI graph — Implicit Flow does not
run, matching OAuth 2\.1 \(draft\) default\-off semantics\.
### Properties

## IAuthorizationResponseBuilder\.ResponseType Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.ResponseType}

The single OAuth 2\.0 / OIDC response\-type value this processor is responsible for, matched
case\-sensitively against parts of the request's `response_type`\.

```csharp
string ResponseType { get; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods

## IAuthorizationResponseBuilder\.BuildResponseAsync\(ValidAuthorizationRequest, AuthorizedGrant, SuccessfullyAuthenticated\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated)}

Populates the relevant field on [result](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated).result 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationResponseBuilder\.BuildResponseAsync\(Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest, Abblix\.Oidc\.Server\.Endpoints\.Token\.Interfaces\.AuthorizedGrant, Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.SuccessfullyAuthenticated\)\.result') for this processor's response type\.
Implementations mutate [result](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated).result 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationResponseBuilder\.BuildResponseAsync\(Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest, Abblix\.Oidc\.Server\.Endpoints\.Token\.Interfaces\.AuthorizedGrant, Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.SuccessfullyAuthenticated\)\.result') in place and may read fields populated by
processors that ran earlier in the canonical iteration order
\(`code` before `token` before `id_token`\)\.

```csharp
System.Threading.Tasks.Task BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest request, Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant authorizedGrant, Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated result);
```
#### Parameters

###### `request` [ValidAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated).request}

###### `authorizedGrant` [AuthorizedGrant](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Interfaces\.AuthorizedGrant') {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated).authorizedGrant}

###### `result` [SuccessfullyAuthenticated](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.SuccessfullyAuthenticated') {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationResponseBuilder.BuildResponseAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.SuccessfullyAuthenticated).result}

#### Returns
[System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task')
