Delegate HmacAuthenticator
- Namespace
- Cuemon.AspNetCore.Authentication.Hmac
- Assembly
- Cuemon.AspNetCore.Authentication.dll
Represents the method that defines an Authenticator typically assigned on HmacAuthenticationOptions.
public delegate ClaimsPrincipal HmacAuthenticator(string clientId, out string clientSecret)
Parameters
clientIdstringThe public key to match and lookup the paired shared
clientSecret.clientSecretstringThe shared secret-private key paired with
clientId.
Returns
- ClaimsPrincipal
A ClaimsPrincipal that is associated with the result of
clientSecret.
Examples
The following example demonstrates how to assign and invoke a
using System;
using System.Security.Claims;
using Cuemon.AspNetCore.Authentication.Hmac;
namespace MyApp.Examples;
public static class HmacAuthenticatorExample
{
public static void Demonstrate()
{
HmacAuthenticator authenticator = (string clientId, out string clientSecret) =>
{
clientSecret = clientId == "Agent-Api" ? "Test" : null;
return clientSecret == null
? null
: new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, clientId) }, HmacFields.Scheme));
};
var principal = authenticator("Agent-Api", out var secret);
Console.WriteLine(secret);
Console.WriteLine(principal?.Identity?.Name);
}
}