#### [Abblix\.SharedSignals](https://www.abblix.com/en/docs/api/abblix-sharedsignals 'index')
### [Abblix\.SharedSignals\.Receiver\.SecurityEvent](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Receiver.SecurityEvent 'Abblix\.SharedSignals\.Receiver\.SecurityEvent')

## TransmitterConfigurationClient Class

Fetches a transmitter's configuration metadata from the well\-known address its issuer
identifier resolves to \(SSF 1\.0 Sections 7\.2, 7\.2\.1\), and refuses a document that does not
assert the issuer it was fetched for\.

```csharp
public sealed class TransmitterConfigurationClient
```

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

### Remarks
Authentication, proxies and retries are the [System\.Net\.Http\.HttpClient](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient 'System\.Net\.Http\.HttpClient')'s configuration \- the
host wires them where it wires every other outbound client; this type owns only the SSF
mechanics\.
### Constructors

## TransmitterConfigurationClient\(HttpClient\) Constructor {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.TransmitterConfigurationClient(System.Net.Http.HttpClient)}

Fetches a transmitter's configuration metadata from the well\-known address its issuer
identifier resolves to \(SSF 1\.0 Sections 7\.2, 7\.2\.1\), and refuses a document that does not
assert the issuer it was fetched for\.

```csharp
public TransmitterConfigurationClient(System.Net.Http.HttpClient httpClient);
```
#### Parameters

###### `httpClient` [System\.Net\.Http\.HttpClient](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient 'System\.Net\.Http\.HttpClient') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.TransmitterConfigurationClient(System.Net.Http.HttpClient).httpClient}

The client the document is fetched with\.

### Remarks
Authentication, proxies and retries are the [System\.Net\.Http\.HttpClient](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient 'System\.Net\.Http\.HttpClient')'s configuration \- the
host wires them where it wires every other outbound client; this type owns only the SSF
mechanics\.
### Methods

## TransmitterConfigurationClient\.GetAsync\(Uri, CancellationToken\) Method {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Threading.CancellationToken)}

Fetches the Transmitter Configuration Metadata for [issuer](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Threading.CancellationToken).issuer 'Abblix\.SharedSignals\.Receiver\.SecurityEvent\.TransmitterConfigurationClient\.GetAsync\(System\.Uri, System\.Threading\.CancellationToken\)\.issuer')\.

```csharp
public System.Threading.Tasks.Task<Abblix.SharedSignals.Model.TransmitterConfiguration> GetAsync(System.Uri issuer, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `issuer` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Threading.CancellationToken).issuer}

The transmitter's issuer identifier, from a trusted source
            \(SSF 1\.0 Section 7\.2\)\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Threading.CancellationToken).cancellationToken}

Cancels the fetch\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[TransmitterConfiguration](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.TransmitterConfiguration 'Abblix\.SharedSignals\.Model\.TransmitterConfiguration')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The metadata document, its issuer identity confirmed\.

#### Exceptions

[System\.Net\.Http\.HttpRequestException](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httprequestexception 'System\.Net\.Http\.HttpRequestException')  
The transmitter answered with an error status\.

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
The document is empty, or asserts an issuer other than the one it was fetched for \- the
SSF counterpart of the identity check every discovery protocol makes, without which a
document served on one issuer's path could impersonate another issuer of the same host\.

## TransmitterConfigurationClient\.GetAsync\(Uri, Uri, CancellationToken\) Method {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken)}

Fetches the Transmitter Configuration Metadata for [issuer](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken).issuer 'Abblix\.SharedSignals\.Receiver\.SecurityEvent\.TransmitterConfigurationClient\.GetAsync\(System\.Uri, System\.Uri, System\.Threading\.CancellationToken\)\.issuer') from an
explicitly named address instead of the one the issuer resolves to\.

```csharp
public System.Threading.Tasks.Task<Abblix.SharedSignals.Model.TransmitterConfiguration> GetAsync(System.Uri issuer, System.Uri metadataAddress, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `issuer` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken).issuer}

The transmitter's issuer identifier, from a trusted source \- still
            the identity the document must assert\.

###### `metadataAddress` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken).metadataAddress}

Where the document is fetched from\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken).cancellationToken}

Cancels the fetch\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[TransmitterConfiguration](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Model.TransmitterConfiguration 'Abblix\.SharedSignals\.Model\.TransmitterConfiguration')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The metadata document, its issuer identity confirmed\.

#### Exceptions

[System\.Net\.Http\.HttpRequestException](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httprequestexception 'System\.Net\.Http\.HttpRequestException')  
The transmitter answered with an error status\.

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
The document is empty, arrives under a media type other than "application/json", or
asserts an issuer other than [issuer](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient#Abblix.SharedSignals.Receiver.SecurityEvent.TransmitterConfigurationClient.GetAsync(System.Uri,System.Uri,System.Threading.CancellationToken).issuer 'Abblix\.SharedSignals\.Receiver\.SecurityEvent\.TransmitterConfigurationClient\.GetAsync\(System\.Uri, System\.Uri, System\.Threading\.CancellationToken\)\.issuer')\.

### Remarks
The insertion\-derived well\-known address is the conformant location \(SSF 1\.0
Section 7\.2\) and the parameterless overload is the normal door\. This one exists for
transmitters that publish the document elsewhere \- a non\-conformant implementation, or a
deployment quirk the receiver cannot fix from its side\. Every check stays in force, the
issuer identity above all: the address only says where the bytes come from, never who
they speak for\.
