Part of DKNet.AspCore.Extensions. AddSensitiveDataPrincipalAccessor connects the EF Core sensitive-data serialization contract to the current HTTP user:
using DKNet.AspCore.Extensions.Security;
using DKNet.EfCore.Extensions.Serialization;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
services.AddSensitiveDataPrincipalAccessor();
using var provider = services.BuildServiceProvider();
Console.WriteLine(provider.GetRequiredService<ISensitiveDataPrincipalAccessor>().Current is null); // True
The helper adds IHttpContextAccessor and tries to register the internal singleton HttpContextSensitiveDataPrincipalAccessor for ISensitiveDataPrincipalAccessor. Its Current reads HttpContext.User on access; outside a request it returns null. An existing contract registration is retained.
ISensitiveDataPrincipalAccessor takes precedence because registration uses TryAddSingleton.