diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs index 3ec1cf066a..ea477f2bec 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs @@ -193,9 +193,19 @@ namespace Volo.Abp.IdentityServer.Clients IdentityProviderRestrictions.Add(new ClientIdPRestriction(Id, provider)); } - public virtual void AddProperty([NotNull] string key) + public virtual void RemoveAllIdentityProviderRestriction() { - Properties.Add(new ClientProperty(Id, key)); + IdentityProviderRestrictions.Clear(); + } + + public virtual void AddProperty([NotNull] string key, [NotNull] string value) + { + Properties.Add(new ClientProperty(Id, key,value)); + } + + public virtual void RemoveAllProperties() + { + Properties.Clear(); } public virtual void AddClaim(IGuidGenerator guidGenerator, [NotNull] string type, string value) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/ClientProperty.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/ClientProperty.cs index a7a9da6e4f..31d131e762 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/ClientProperty.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/ClientProperty.cs @@ -17,12 +17,13 @@ namespace Volo.Abp.IdentityServer.Clients } - protected internal ClientProperty(Guid clientId, [NotNull] string key) + protected internal ClientProperty(Guid clientId, [NotNull] string key, [NotNull] string value) { Check.NotNull(key, nameof(key)); ClientId = clientId; Key = key; + Value = value; } public override object[] GetKeys() diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index 559946b6d6..7e73c986cc 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -66,6 +66,20 @@ namespace Volo.Abp.IdentityServer.Clients DbContext.Set().Remove(grantType); } + var restrictions = DbContext.Set().Where(s => s.ClientId == entity.Id); + + foreach (var restriction in restrictions) + { + DbContext.Set().Remove(restriction); + } + + var properties = DbContext.Set().Where(s => s.ClientId == entity.Id); + + foreach (var clientProperty in properties) + { + DbContext.Set().Remove(clientProperty); + } + return await base.UpdateAsync(entity, autoSave, cancellationToken); }