public async Task Invoke(IDictionary <string, object> env)
        {
            var context = new OwinContext(env);

            if (context.Authentication != null && context.Authentication.User != null)
            {
                var transformedPrincipal = await _options.ClaimTransformation(context.Authentication.User);

                context.Authentication.User = transformedPrincipal;
            }

            await _next(env);
        }