owin:Catch SecurityTokenExpiredException异常

时间:2016-12-20 15:57:54

标签: c# asp.net-web-api owin openid access-token

我有一个使用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:生命周期验证失败。令牌已过期。

那么有没有办法捕获这个异常并记录它,或者编写库的开发人员只是想隐藏异常而无缘无故?

0 个答案:

没有答案