Example #1
0
        public async Task RemoveAsync(string key)
        {
            var token = await context.Tokens.FindAsync(key, tokenType);

            if (token != null)
            {
                context.Tokens.Remove(token);
                await context.SaveChangesAsync();
            }
        }
    public async Task CanAddUpdateAndDeleteConsents()
    {
      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        db.Consents.Add(new Consent {
          ClientId = "test-client",
          Subject = "test-consent-subject",
          Scopes = "foo",
        });

        await db.SaveChangesAsync();
      }

      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        var consent = await db.Consents.FirstAsync(t => t.Subject == "test-consent-subject");
        Assert.Equal("foo", consent.Scopes);

        consent.Scopes += ",bar";
        await db.SaveChangesAsync();
      }

      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        var consent = await db.Consents.FirstAsync(t => t.Subject == "test-consent-subject");
        Assert.Equal("foo,bar", consent.Scopes);

        db.Consents.Remove(consent);
        await db.SaveChangesAsync();
      }

      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        var consent = await db.Consents.FirstOrDefaultAsync(t => t.Subject == "test-consent-subject");

        Assert.Null(consent);
      }
    }
    public async Task CanAddAndDeleteTokens()
    {
      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        db.Tokens.Add(new Token {
          ClientId = "test-client",
          SubjectId = "test-token-subject",
          Key = "token-key",
          TokenType = IdentityServer3.EntityFramework.Entities.TokenType.AuthorizationCode,
          JsonCode = "{\"json\":\"fake\"}",
        });

        await db.SaveChangesAsync();
      }

      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        var token = await db.Tokens.FirstAsync(t => t.SubjectId == "test-token-subject");
        Assert.Equal("token-key", token.Key);

        db.Tokens.Remove(token);
        await db.SaveChangesAsync();
      }

      using( var db = new OperationalDbContext(OperationalConnectionStringName) ) {
        var token = await db.Tokens.FirstOrDefaultAsync(t => t.SubjectId == "test-token-subject");

        Assert.Null(token);
      }
    }
Example #4
0
        public async Task UpdateAsync(IdentityServer3.Core.Models.Consent consent)
        {
            var item = await context.Consents.FindAsync(consent.Subject, consent.ClientId);

            if (item == null)
            {
                item = new Entities.Consent
                {
                    Subject  = consent.Subject,
                    ClientId = consent.ClientId
                };
                context.Consents.Add(item);
            }

            if (consent.Scopes == null || !consent.Scopes.Any())
            {
                context.Consents.Remove(item);
            }

            item.Scopes = StringifyScopes(consent.Scopes);

            await context.SaveChangesAsync();
        }
Example #5
0
        private async Task ClearTokens()
        {
            try
            {
                Logger.Info("Clearing tokens");

                using (var db = new OperationalDbContext(this.options.ConnectionString, this.options.Schema))
                {
                    var query =
                        from token in db.Tokens
                        where token.Expiry < DateTimeOffset.UtcNow
                        select token;

                    db.Tokens.RemoveRange(query);

                    await db.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorException("Exception cleanring tokens", ex);
            }
        }
        private async Task ClearTokens()
        {
            try
            {
                Logger.Info("Clearing tokens");

                using (var db = new OperationalDbContext(this.options.ConnectionString, this.options.Schema))
                {
                    var query =
                        from token in db.Tokens
                        where token.Expiry < DateTimeOffset.UtcNow
                        select token;

                    db.Tokens.RemoveRange(query);

                    await db.SaveChangesAsync();
                }
            }
            catch(Exception ex)
            {
                Logger.ErrorException("Exception cleanring tokens", ex);
            }
        }