Manuellement décoder OAuth porteur du jeton en c#

Dans mon Api Web 2.2 OWIN en fonction de l'application que j'ai une situation où j'ai manuellement besoin de décoder le porteur du jeton mais je ne sais pas comment faire.
C'est mon démarrage.cs

public class Startup
{
    public static OAuthAuthorizationServerOptions OAuthServerOptions { get; private set; }
    public static UnityContainer IoC;
    public void Configuration(IAppBuilder app)
    {
        //Set Auth configuration
        ConfigureOAuth(app);

        ....and other stuff
    }

    public void ConfigureOAuth(IAppBuilder app)
    {
        OAuthServerOptions = new OAuthAuthorizationServerOptions()
        {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            Provider = new AuthProvider(IoC.Resolve<IUserService>(), IoC.Resolve<IAppSettings>())
        };

        //Token Generation
        app.UseOAuthAuthorizationServer(OAuthServerOptions);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
    }
}

Dans mon contrôleur Im envoyer le porteur du jeton comme un paramètre

[RoutePrefix("api/EP")]
public class EPController : MasterController
{
    [HttpGet]
    [AllowAnonymous]
    [Route("DC")]
    public async Task<HttpResponseMessage> GetDC(string token)
    {
        //Get the claim identity from the token here
        //Startup.OAuthServerOptions...

        //..and other stuff
    }
}

Comment manuellement décoder et d'obtenir les revendications à partir du jeton passé en paramètre?

NOTE: je sais que je peux envoyer le jeton dans l'en-tête et d'utiliser [Autoriser] et (ClaimsIdentity)de l'Utilisateur.D'identité, etc, mais la question est de savoir comment lire le jeton lorsqu'elle n'est pas dans l'en-tête.