public async Task <IActionResult> Update(int id, ClientEditDto input) { _repository.UpdateScopes(id, input.AllowedScopes.ToArray()); new NotImplementedException(); //_repository.Update(id, input); await _repository.SaveChangesAsync(); return(await GetEdit(id)); }
public async Task <IActionResult> Edit(ClientEditDto client) { if (client.Id <= 0) { return(Json(new ResultEntity { Message = "请求数据有误,修改数据空主键" })); } return(await CreateOrUpdate(client)); }
public async Task <ResultModel <string> > EditClient(ClientEditDto dto) { var clientJson = new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync($"/api/Client/UpdateClient", clientJson); if (response.IsSuccessStatusCode) { return(JsonConvert.DeserializeObject <ResultModel <string> >(await response.Content.ReadAsStringAsync())); } return(null); }
private async Task <IActionResult> CreateOrUpdate(ClientEditDto client) { var result = new ResultEntity(); if (ModelState.IsValid) { if (string.IsNullOrWhiteSpace(client.HomePage)) { client.HomePage = "/Home/Index"; } client.SetCreateOrUpdateInfo(CurrentUser.UserId); result = await _clientAppService.AddOrUpdateAsync(client); return(Json(result)); } result.Message = ModelState.Values .FirstOrDefault(a => a.ValidationState == ModelValidationState.Invalid)?.Errors.FirstOrDefault() ?.ErrorMessage; return(Json(result)); }
public async Task <ResultEntity> AddOrUpdateAsync(ClientEditDto editDto) { var barcodeRule = Mapper.Map <Client>(editDto); var result = await _clientManager.AddOrUpdateAsync(barcodeRule); if (result.Success) { await _unitOfWork.CommitAsync(); if (editDto.Id > 0) { await _logManager.LogInfomationAsync(EnumLogType.Audit, LogTitleConstString.ClientEdit, $"【{editDto.Name}】", JsonConvert.SerializeObject(barcodeRule), editDto.CreateBy); } else { await _logManager.LogInfomationAsync(EnumLogType.Audit, LogTitleConstString.ClientAdd, $"【{editDto.Name}】", JsonConvert.SerializeObject(barcodeRule), editDto.CreateBy); } } return(result); }
public async Task <IActionResult> UpdateClient([FromBody] ClientEditDto dto) { return(Json(await _clientService.UpdateClient(dto))); }
public async Task <ResultModel> UpdateClient(ClientEditDto clientUpdateDto) { if (_userDatabaseContext.Clients.Any(x => x.ClientId == clientUpdateDto.ClientId && x.Id != clientUpdateDto.Id.Value)) { return(new ResultModel(ResultCode.Fail, "此客户端ID已存在")); } var client = await _userDatabaseContext.Clients.Where(x => x.Id == clientUpdateDto.Id) .Include(x => x.ClientSecrets) .Include(x => x.AllowedGrantTypes) .Include(x => x.RedirectUris) .Include(x => x.PostLogoutRedirectUris) .Include(x => x.AllowedScopes) .Include(x => x.AllowedCorsOrigins) .FirstOrDefaultAsync(); client.Enabled = clientUpdateDto.Enabled; client.ClientId = clientUpdateDto.ClientId; client.ClientName = clientUpdateDto.ClientName; client.Description = clientUpdateDto.Description; client.AccessTokenLifetime = clientUpdateDto.AccessTokenLifetime.Value; client.Updated = DateTime.Now; client.NonEditable = clientUpdateDto.NonEditable; //client.ClientSecrets = null; client.AllowedGrantTypes = null; client.RedirectUris = null; client.PostLogoutRedirectUris = null; client.AllowedScopes = null; client.AllowedCorsOrigins = null; //List<ClientIdPRestriction> clientIdPRestrictions = new List<ClientIdPRestriction>(); //foreach (var item in clientUpdateDto.IdentityProviderRestrictions) //{ // clientIdPRestrictions.Add(new ClientIdPRestriction // { // Provider = item.Provider // }); //} //List<IdentityServer4.EntityFramework.Entities.ClientClaim> clientClaims = new List<IdentityServer4.EntityFramework.Entities.ClientClaim>(); //foreach (var item in clientUpdateDto.Claims) //{ // clientClaims.Add(new IdentityServer4.EntityFramework.Entities.ClientClaim // { // Type = item.Type, // Value = item.Value // }); //} List <ClientCorsOrigin> clientCorsOrigins = new List <ClientCorsOrigin>(); foreach (var item in clientUpdateDto.AllowedCorsOrigins) { clientCorsOrigins.Add(new ClientCorsOrigin { Origin = item.Origin }); } //List<ClientProperty> clientProperties = new List<ClientProperty>(); //foreach (var item in clientUpdateDto.Properties) //{ // clientProperties.Add(new ClientProperty // { // Key = item.Key, // Value = item.Value // }); //} List <ClientScope> clientScopes = new List <ClientScope>(); foreach (var item in clientUpdateDto.AllowedScopes) { clientScopes.Add(new ClientScope { Scope = item.Scope }); } List <ClientSecret> clientSecrets = new List <ClientSecret>(); foreach (var item in clientUpdateDto.ClientSecrets) { clientSecrets.Add(new ClientSecret { Created = DateTime.Now, Description = item.Description, Expiration = item.Expiration, Type = "SharedSecret", Value = item.Value.ToSha256(), }); } List <ClientGrantType> clientGrantTypes = new List <ClientGrantType>(); foreach (var item in clientUpdateDto.AllowedGrantTypes) { clientGrantTypes.Add(new ClientGrantType { GrantType = item.GrantType }); } List <ClientRedirectUri> clientRedirectUris = new List <ClientRedirectUri>(); foreach (var item in clientUpdateDto.RedirectUris) { clientRedirectUris.Add(new ClientRedirectUri { RedirectUri = item.RedirectUri }); } List <ClientPostLogoutRedirectUri> clientPostLogoutRedirectUris = new List <ClientPostLogoutRedirectUri>(); foreach (var item in clientUpdateDto.PostLogoutRedirectUris) { clientPostLogoutRedirectUris.Add(new ClientPostLogoutRedirectUri { PostLogoutRedirectUri = item.PostLogoutRedirectUri }); } //这里是因为没处理好加密,所以先注释掉 //client.ClientSecrets = clientSecrets; client.AllowedGrantTypes = clientGrantTypes; client.RedirectUris = clientRedirectUris; client.PostLogoutRedirectUris = clientPostLogoutRedirectUris; client.AllowedScopes = clientScopes; //client.IdentityProviderRestrictions = clientIdPRestrictions; client.AllowedCorsOrigins = clientCorsOrigins; //client.Properties = clientProperties; //client.Claims = clientClaims; try { _userDatabaseContext.Clients.Update(client); await _userDatabaseContext.SaveChangesAsync(); return(new ResultModel(ResultCode.Success, "更新客户端成功")); } catch (Exception ex) { return(new ResultModel(ResultCode.Fail, ex.Message)); } }
public async Task <ResultModel> CreateClient(ClientEditDto dto) { if (_userDatabaseContext.Clients.Any(x => x.ClientId == dto.ClientId)) { return(new ResultModel(ResultCode.Fail, "此客户端ID已经存在,请重新输入")); } //List<ClientIdPRestriction> clientIdPRestrictions = new List<ClientIdPRestriction>(); //foreach (var item in clientCreateDto.IdentityProviderRestrictions) //{ // clientIdPRestrictions.Add(new ClientIdPRestriction // { // Provider = item.Provider // }); //} //List<IdentityServer4.EntityFramework.Entities.ClientClaim> clientClaims = new List<IdentityServer4.EntityFramework.Entities.ClientClaim>(); //foreach (var item in clientCreateDto.Claims) //{ // clientClaims.Add(new IdentityServer4.EntityFramework.Entities.ClientClaim // { // Type = item.Type, // Value = item.Value // }); //} List <ClientCorsOrigin> clientCorsOrigins = new List <ClientCorsOrigin>(); foreach (var item in dto.AllowedCorsOrigins) { clientCorsOrigins.Add(new ClientCorsOrigin { Origin = item.Origin }); } //List<ClientProperty> clientProperties = new List<ClientProperty>(); //foreach (var item in clientCreateDto.Properties) //{ // clientProperties.Add(new ClientProperty // { // Key = item.Key, // Value = item.Value // }); //} List <ClientScope> clientScopes = new List <ClientScope>(); foreach (var item in dto.AllowedScopes) { clientScopes.Add(new ClientScope { Scope = item.Scope }); } clientScopes.Add(new ClientScope { Scope = "openid" }); clientScopes.Add(new ClientScope { Scope = "profile" }); List <ClientSecret> clientSecrets = new List <ClientSecret>(); foreach (var item in dto.ClientSecrets) { clientSecrets.Add(new ClientSecret { Created = DateTime.Now, Description = item.Description, Expiration = item.Expiration, Type = "SharedSecret", Value = item.Value.ToSha256(), }); } List <ClientGrantType> clientGrantTypes = new List <ClientGrantType>(); foreach (var item in dto.AllowedGrantTypes) { clientGrantTypes.Add(new ClientGrantType { GrantType = item.GrantType }); } List <ClientRedirectUri> clientRedirectUris = new List <ClientRedirectUri>(); foreach (var item in dto.RedirectUris) { clientRedirectUris.Add(new ClientRedirectUri { RedirectUri = item.RedirectUri }); } List <ClientPostLogoutRedirectUri> clientPostLogoutRedirectUris = new List <ClientPostLogoutRedirectUri>(); foreach (var item in dto.PostLogoutRedirectUris) { clientPostLogoutRedirectUris.Add(new ClientPostLogoutRedirectUri { PostLogoutRedirectUri = item.PostLogoutRedirectUri }); } try { var client = new IdentityServer4.EntityFramework.Entities.Client { Enabled = dto.Enabled, ClientId = dto.ClientId, RequireClientSecret = dto.RequireClientSecret, ClientName = dto.ClientName, Description = dto.Description ?? "", AlwaysIncludeUserClaimsInIdToken = true, AllowAccessTokensViaBrowser = true, AllowOfflineAccess = true, IdentityTokenLifetime = 300, AccessTokenLifetime = dto.AccessTokenLifetime ?? 3600, AuthorizationCodeLifetime = 300, ConsentLifetime = null, AbsoluteRefreshTokenLifetime = 2592000, SlidingRefreshTokenLifetime = 1296000, RefreshTokenUsage = (int)TokenUsage.OneTimeOnly, UpdateAccessTokenClaimsOnRefresh = true, RefreshTokenExpiration = (int)TokenExpiration.Absolute, AccessTokenType = 0, EnableLocalLogin = true, IncludeJwtId = true, AlwaysSendClientClaims = false, ClientClaimsPrefix = "client_", PairWiseSubjectSalt = null, Created = DateTime.Now, UserSsoLifetime = null, UserCodeType = null, DeviceCodeLifetime = 300, NonEditable = dto.NonEditable, ClientSecrets = clientSecrets, AllowedGrantTypes = clientGrantTypes, RedirectUris = clientRedirectUris, PostLogoutRedirectUris = clientPostLogoutRedirectUris, AllowedScopes = clientScopes, //IdentityProviderRestrictions = clientIdPRestrictions, AllowedCorsOrigins = clientCorsOrigins, //Properties = clientProperties, //Claims = clientClaims, //RequirePkce = clientCreateDto.RequirePkce ?? true, RequireRequestObject = false, }; _userDatabaseContext.Clients.Add(client); await _userDatabaseContext.SaveChangesAsync(); return(new ResultModel(ResultCode.Success, "创建客户端成功")); } catch (Exception ex) { return(new ResultModel(ResultCode.Fail, ex.Message)); } }