我有一个使用OpenID进行身份验证的asp.net web api项目。我需要找到一种方法来记录未经授权的请求。我试过这个,但它不起作用:
public class LogMiddleware : OwinMiddleware
{
public AuditMiddleware(OwinMiddleware next) : base(next) {}
public override async Task Invoke(IOwinContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
try
{
await this.Next.Invoke(context);
}
catch (Exception exception)
{
var body = ReadRequestBody(context);
var request = JsonConvert.SerializeObject(new { context.Request.Headers, Body = body, QueryString = context.Request.QueryString.Value });
this.factory.Create().Error().Exception(exception).AdditionalInfo("request", request).Write();
throw;
}
}
..........
在视觉工作室,我看到了:
异常:抛出异常:System.IdentityModel.Tokens.Jwt.dll中的'System.IdentityModel.Tokens.SecurityTokenExpiredException'(“IDX10223:生命周期验证失败。令牌已过期。
异常:捕获异常:System.IdentityModel.Tokens.Jwt.dll中的'System.IdentityModel.Tokens.SecurityTokenExpiredException'(“IDX10223:生命周期验证失败。令牌已过期。
那么有没有办法捕获这个异常并记录它,或者编写库的开发人员只是想隐藏异常而无缘无故?