使用 UseJwtBearerAuthentication post 授权时添加跟踪日志

Adding trace logs when post authorization using UseJwtBearerAuthentication

我有一个 asp.net mvc 网站,其 auth 配置如下

app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
    TokenValidationParameters = new TokenValidationParameters()
    {
        AudienceValidator = ValidateAudience,
        ValidIssuer = GlobalUri,
        SaveSigninToken = true,
        IssuerSigningKeyResolver = await IssuerSigningKeyResolverAsync(),

    }
});

我的问题是我想在用户通过身份验证或其他方式时添加跟踪日志。

不幸的是,我没有看到可以在 owin 管道中进行身份验证后进行一些 post 处理的挂钩。或者有其他方法吗?

我认为您必须使用 过滤器 才能记录用户 activity,您可以通过这种方式创建过滤器

 public class UserActivityFilter : ActionFilterAttribute, IActionFilter
    {

        void IActionFilter.OnActionExecuting(ActionExecutingContext actionExecutedContext)
        {
            Log(actionExecutedContext);
            base.OnActionExecuting(actionExecutedContext);
        }

        private void Log(ActionExecutingContext filterContext)
        {
            //Your logic log here
        }
    }

然后在 App_Start\FilterConfig.cs

中注册您的过滤器
public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new UserActivityFilter());
        }
    }