public async Task Invoke(HttpContext context) { var handler = new ClaimsTransformationHandler(Options.Transformer); handler.RegisterAuthenticationHandler(context.GetAuthentication()); try { if (Options.Transformer != null) { context.User = await Options.Transformer.TransformAsync(context.User); } await _next(context); } finally { handler.UnregisterAuthenticationHandler(context.GetAuthentication()); } }