コード例 #1
0
    public async Task <string> CreateAsync(ApplicationParam model)
    {
        if (model == null)
        {
            throw new ArgumentNullException(nameof(model));
        }

        var entity = await _manager.FindByClientIdAsync(model.ClientId);

        if (entity == null)
        {
            // create new entity
            var newEntity = new OpenIddictEntityFrameworkCoreApplication
            {
                ClientId    = model.ClientId,
                DisplayName = model.DisplayName,
                Type        = model.Type
            };

            HandleCustomProperties(model, newEntity);

            await _manager.CreateAsync(newEntity, model.ClientSecret);

            return(newEntity.Id);
        }

        // update existing entity
        model.Id = entity.Id;
        await UpdateAsync(model);

        return(entity.Id);
    }
コード例 #2
0
        private ApplicationInfo ToInfo(OpenIddictEntityFrameworkCoreApplication entity)
        {
            var info = SimpleMapper
                       .From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity);

            info.RequireConsent = entity.ConsentType == ConsentTypes.Explicit;
            info.Permissions    = entity.Permissions != null
        ? JsonSerializer.Deserialize <List <string> >(entity.Permissions)
        : new List <string>();

            info.RedirectUris = entity.RedirectUris != null
        ? JsonSerializer.Deserialize <List <string> >(entity.RedirectUris)
        : new List <string>();

            info.PostLogoutRedirectUris = entity.PostLogoutRedirectUris != null
        ? JsonSerializer.Deserialize <List <string> >(entity.PostLogoutRedirectUris)
        : new List <string>();

            info.RequirePkce = entity.Requirements != null
        ? JsonSerializer.Deserialize <List <string> >(entity.Requirements)
                               .Contains(Requirements.Features.ProofKeyForCodeExchange)
        : false;

            return(info);
        }
コード例 #3
0
 private static void HandleCustomProperties(
     ApplicationParam model,
     OpenIddictEntityFrameworkCoreApplication entity
     )
 {
     entity.ConsentType            = model.RequireConsent ? ConsentTypes.Explicit : ConsentTypes.Implicit;
     entity.Permissions            = JsonSerializer.Serialize(model.Permissions);
     entity.RedirectUris           = JsonSerializer.Serialize(model.RedirectUris);
     entity.PostLogoutRedirectUris = JsonSerializer.Serialize(model.PostLogoutRedirectUris);
     entity.Requirements           = model.RequirePkce ? JsonSerializer.Serialize(new List <string> {
         Requirements.Features.ProofKeyForCodeExchange
     }) : null;
 }
コード例 #4
0
 private static ApplicationInfo ToListInfo(OpenIddictEntityFrameworkCoreApplication entity)
 => SimpleMapper.From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity);
コード例 #5
0
 private ApplicationInfo ToListInfo(OpenIddictEntityFrameworkCoreApplication entity)
 {
     return(SimpleMapper.From <OpenIddictEntityFrameworkCoreApplication, ApplicationInfo>(entity));
 }