在验证之前,在.net core 2 app中丰富了serilog日志

时间:2018-02-13 10:39:01

标签: .net-core serilog

我有一个dotnet core 2网络应用程序,我已经使用Enricher配置了SeriLog,因此我可以在每个请求中记录用户的电子邮件,在"配置&#34 ;方法我:

            // Log user
        app.Use(async (context, next) =>
        {
            using (Serilog.Context.LogContext.PushProperty("UserId", context.User.Claims.Where(a => a.Type == ClaimTypes.Email).FirstOrDefault().Value))
            {
                await next.Invoke();
            }
        });

        app.UseMvc();

不幸的是,这是在身份验证之前发生的,因此永远不会设置电子邮件。

如何在身份验证后实现此目的?身份验证在" ConfigureServices"中配置。标准方式的方法如下:

            services.AddAuthentication(...

1 个答案:

答案 0 :(得分:4)

我遇到了类似的问题,需要在自定义中间件组件中使用身份验证数据。 简单地说

app.UseAuthentication();

在我的自定义使用中间件之前,使用相关用户数据填充上下文

希望它有所帮助。