public async Task <IActionResult> Register([FromBody] RegisterDTO register) { this.logger.LogDebug($"注册新账户: {register.UserName}"); var newUser = new HackSystemUser { UserName = register.UserName, Email = register.Email }; var result = await this.userManager.CreateAsync(newUser, register.Password); if (!result.Succeeded) { this.logger.LogError(new Exception(string.Join("\n", result.Errors)), $"注册账户失败: {register.UserName} ({result.Errors.Count()} 个错误)"); var errors = result.Errors.Select(x => $"(代码:{x.Code}) {x.Description}"); var failedResult = new RegisterResultDTO { Successful = false, Errors = errors }; return(this.BadRequest(failedResult)); } result = await this.userManager.AddToRoleAsync(newUser, CommonSense.Roles.HackerRole); if (!result.Succeeded) { this.logger.LogError(new Exception(string.Join("\n", result.Errors)), $"配置账户角色失败: {register.UserName} ({result.Errors.Count()} 个错误)"); var errors = result.Errors.Select(x => $"(代码:{x.Code}) {x.Description}"); var failedResult = new RegisterResultDTO { Successful = false, Errors = errors }; return(this.BadRequest(failedResult)); } this.logger.LogDebug($"注册账户成功: {register.UserName}"); var registerResult = new RegisterResultDTO() { Successful = true }; return(this.Ok(registerResult)); }
public async Task <RegisterResultDTO> Register(RegisterRequestDTO item) { var result = new RegisterResultDTO { Successful = false }; var request = new HttpRequestMessage(HttpMethod.Post, this.UrlApi + "Register"); request.Headers.Accept.Clear(); request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var content = new StringContent(JsonConvert.SerializeObject(item), Encoding.UTF8, "application/json"); request.Content = content; //request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); var response = await _httpClient.SendAsync(request, CancellationToken.None); string str = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <RegisterResultDTO>(str); return(result); }