Пример #1
0
        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));
        }
Пример #2
0
        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);
        }