public async Task <ActionResult <OpenIddictApplicationDescriptor> > SaveAsync(OpenIddictApplicationDescriptor descriptor) { descriptor.Permissions.Clear(); descriptor.Permissions.AddRange(_defaultPermissions); var app = await _manager.FindByClientIdAsync(descriptor.ClientId); if (app == null) {// create app = await _manager.CreateAsync(descriptor); await _manager.PopulateAsync(descriptor, app); } else {// update //prevent changing client secret descriptor.ClientSecret = app.ClientSecret; await _manager.PopulateAsync(app, descriptor); await _manager.UpdateAsync(app); } descriptor.ClientSecret = app.ClientSecret; return(descriptor); }