使用UseJwtBearerAuthentication在授权后添加跟踪日志

时间:2017-09-29 15:39:20

标签: c# .net asp.net-mvc owin

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

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

    }
});

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

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

1 个答案:

答案 0 :(得分:1)

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

 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());
        }
    }
相关问题