C# 在使用UseJwtBeareAuthentication发布授权时添加跟踪日志

C# 在使用UseJwtBeareAuthentication发布授权时添加跟踪日志,c#,.net,asp.net-mvc,owin,C#,.net,Asp.net Mvc,Owin,我有一个asp.net mvc网站,其auth配置如下 app.UseJwtBearerAuthentication( new JwtBearerAuthenticationOptions { TokenValidationParameters = new TokenValidationParameters() { AudienceValidator = ValidateAudience, ValidIssuer = GlobalUri,

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

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

    }
});
我的问题是,我想在对用户进行身份验证或其他验证时添加跟踪日志


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

我认为您必须使用过滤器为了记录用户活动,您可以用这种方法创建一个过滤器

 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\u Start\FilterConfig.cs中注册您的过滤器

public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new UserActivityFilter());
        }
    }

你提到了aspnet,但aspnet很大,你使用的是aspnet webforms、MVC还是WebApi?我使用的是asp.NETMVC。我现在要把我的问题编辑得更清楚些。谢谢你指出。