Проверка подлинности Windows происходит на уровне IIS, прежде чем ASP.NET Core даже увидит запрос, поэтому для него нет событий, которые вы могли бы обработать. У сеансов также нет событий.
Вы можете внедрить простое промежуточное программное обеспечение, как только вы введете регистратор в Startup,
public class Startup
{
private readonly ILogger<Startup> _logger;
public IConfiguration Configuration { get; }
public Startup(ILogger<Startup> logger, IConfiguration configuration)
{
_logger = logger;
Configuration = configuration;
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// The typical startup crud, then
app.Use(async (context, next) =>
{
int logged = context.Session.GetInt32("Logged") ?? 0;
if (visits == 0 && CheckIfThisRequestNeedsToUseSession(context))
{
// New session
// Log with _logger, then mark so it doesn't repeat
context.Session.SetInt32("IKnowYou", 1);
// ...
}
await next();
});
// …
}
}