aspnetcore/samples/ClaimsTransformation/ClaimsTransformer.cs

23 lines
766 B
C#

using System;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
namespace AuthSamples.ClaimsTransformer
{
public class ClaimsTransformer : IClaimsTransformation
{
public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
// This will run every time Authenticate is called so its better to create a new Principal
var transformed = new ClaimsPrincipal();
transformed.AddIdentities(principal.Identities);
transformed.AddIdentity(new ClaimsIdentity(new Claim[]
{
new Claim("Transformed", DateTime.Now.ToString())
}));
return Task.FromResult(transformed);
}
}
}