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

## GrantIdGenerator Class

Default [IGrantIdGenerator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator 'Abblix\.Oidc\.Server\.Features\.RandomGenerators\.IGrantIdGenerator') implementation\. Draws random bytes from a cryptographically
secure source \([System\.Security\.Cryptography\.RandomNumberGenerator](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator 'System\.Security\.Cryptography\.RandomNumberGenerator') via `CryptoRandom`\)
using the byte count configured in [GrantIdLength](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.GrantIdLength 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.GrantIdLength'), then URL\-safe Base64 encodes
the result so the resulting `grant_id` value can travel safely through HTTP transports\.

```csharp
public class GrantIdGenerator : Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → GrantIdGenerator

Implements [IGrantIdGenerator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator 'Abblix\.Oidc\.Server\.Features\.RandomGenerators\.IGrantIdGenerator')
### Constructors

## GrantIdGenerator\(IOptions\<OidcOptions\>\) Constructor {#Abblix.Oidc.Server.Features.RandomGenerators.GrantIdGenerator.GrantIdGenerator(Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_)}

Default [IGrantIdGenerator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator 'Abblix\.Oidc\.Server\.Features\.RandomGenerators\.IGrantIdGenerator') implementation\. Draws random bytes from a cryptographically
secure source \([System\.Security\.Cryptography\.RandomNumberGenerator](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator 'System\.Security\.Cryptography\.RandomNumberGenerator') via `CryptoRandom`\)
using the byte count configured in [GrantIdLength](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.GrantIdLength 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.GrantIdLength'), then URL\-safe Base64 encodes
the result so the resulting `grant_id` value can travel safely through HTTP transports\.

```csharp
public GrantIdGenerator(Microsoft.Extensions.Options.IOptions<Abblix.Oidc.Server.Common.Configuration.OidcOptions> options);
```
#### Parameters

###### `options` [Microsoft\.Extensions\.Options\.IOptions&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1')[OidcOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1') {#Abblix.Oidc.Server.Features.RandomGenerators.GrantIdGenerator.GrantIdGenerator(Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_).options}
### Methods

## GrantIdGenerator\.GenerateGrantId\(\) Method {#Abblix.Oidc.Server.Features.RandomGenerators.GrantIdGenerator.GenerateGrantId()}

Produces a new `grant_id` value from cryptographically secure random bytes, sized per
[GrantIdLength](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.GrantIdLength 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.GrantIdLength') and URL\-safe Base64 encoded\.

```csharp
public string GenerateGrantId();
```

Implements [GenerateGrantId\(\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator#Abblix.Oidc.Server.Features.RandomGenerators.IGrantIdGenerator.GenerateGrantId() 'Abblix\.Oidc\.Server\.Features\.RandomGenerators\.IGrantIdGenerator\.GenerateGrantId\(\)')

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A URL\-safe, randomly generated unique identifier for a refresh\-token grant lineage\.
