使用 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());
}
}
我有一个 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());
}
}