#### [Abblix\.SecurityEvents](https://www.abblix.com/en/docs/api/abblix-securityevents 'index')
### [Abblix\.SecurityEvents\.Infrastructure](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.Infrastructure 'Abblix\.SecurityEvents\.Infrastructure')

## ValidationProfileKeys Class

Names the validation profiles built over this core: each a keyed
`ISecurityEventTokenValidator` family that one consumer creates, edits and resolves, so
what one demands of its own kind of token never collides with what another demands of its\.

```csharp
public static class ValidationProfileKeys
```

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

### Remarks
The keys live with the profile mechanism rather than with each consumer, because that is what
they are keys INTO \- a profile is a shape of this core's pipeline, whatever specification asked
for that shape\. Each value is the token kind's own `typ`, since that is precisely what
profiles part over: each pins a type and shapes the claims that type demands, so "which
profile" and "which kind of token" are one question with one spelling\.

A second consumer of the SAME kind does not share a key with the first: a profile has one
owner, and that consumer names a key of its own. What is published here is one key per kind
this repository ships a profile for.
### Fields

## ValidationProfileKeys\.LogoutToken Field {#Abblix.SecurityEvents.Infrastructure.ValidationProfileKeys.LogoutToken}

The profile a Logout Token is judged by, its type fixed by OpenID Connect Back\-Channel
Logout 1\.0 Section 2\.4\.

```csharp
public const string LogoutToken = "logout+jwt";
```

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

### Remarks
The two readings stay spelled apart on purpose:
[LogoutToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebTokenTypes#Abblix.Jwt.JsonWebTokenTypes.LogoutToken 'Abblix\.Jwt\.JsonWebTokenTypes\.LogoutToken') stands wherever a WIRE value is meant
\- the header the profile pins, the header a fixture writes \- and this name stands where the
question is which profile\.

## ValidationProfileKeys\.SecurityEvent Field {#Abblix.SecurityEvents.Infrastructure.ValidationProfileKeys.SecurityEvent}

The profile a plain Security Event Token is judged by \(RFC 8417\), which Shared Signals
receivers shape further for their streams\.

```csharp
public const string SecurityEvent = "secevent+jwt";
```

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

### Remarks
Public because a host that adds its OWN steps to a receiver's validation \- a
deployment\-specific issuer pin, say \- reaches the profile's cursor by this key\.
