public static async Task<bool> FulfillAny(ISimpleIdentityRepository repo, string token, IEnumerable<AuthorizationRequirement> requirements)
 {
     User user = await repo.UserManager.FindUserByToken(token);
     foreach (var req in requirements)
     {
         if (await req.Fulfill(repo, user.Id)) return true;
     }
     return false;
 }
 public async Task<bool> Fulfill(ISimpleIdentityRepository repo, string token)
 {
     User user = await repo.UserManager.FindUserByToken(token);
     return await Fulfill(repo, user.Id);
 }
 public async Task<bool> Fulfill(ISimpleIdentityRepository repo, int userId)
 {
     return await repo.AuthorizationManager.IsUserAuthorized(userId, AuthResourceType, ResourceId, Scopes);
 }
 public async Task<bool> FulFillAny(ISimpleIdentityRepository repo, IEnumerable<AuthorizationRequirement> reqs)
 {
     return await AuthorizationRequirement.FulfillAny(repo, Token, reqs);
 }
 public async Task<bool> FulFill(ISimpleIdentityRepository repo, AuthorizationRequirement req)
 {
     return await req.Fulfill(repo, Token);
 }
 public async Task<bool> IsValid(ISimpleIdentityRepository repo, string method, string url, Stream body = null,  Dictionary<string, string> parameters = null)
 {
     string computedSignature = await repo.TokenManager.ComputeSignature(Token, method, url, body, parameters);
     return (computedSignature == null || Signature == computedSignature);
 }