public static string LogIn(UserDtoOut dto) { if (BYPASS_LOGIN) { return("admin"); } HttpWebRequest request = (HttpWebRequest)WebRequest.Create(GetPath("login")); request.Timeout = 10000; request.Method = "POST"; request.ContentType = "application/json; charset=utf-8"; using (var streamWriter = new StreamWriter(request.GetRequestStream())) { string json = Newtonsoft.Json.JsonConvert.SerializeObject(dto); streamWriter.Write(json); streamWriter.Close(); } using (var response = request.GetResponse()) { return((new StreamReader(response.GetResponseStream())).ReadToEnd()); } }
public async Task <ActionResult <UserDtoOut> > Register([FromBody] UserDtoIn userDtoIn) { if (string.IsNullOrWhiteSpace(userDtoIn.EMail)) { return(BadRequest(new { message = "Invalid Email Address" })); } if (string.IsNullOrWhiteSpace(userDtoIn.Password)) { return(BadRequest(new { message = "Invalid password" })); } if (string.IsNullOrWhiteSpace(userDtoIn.UserName)) { userDtoIn.UserName = userDtoIn.EMail; } IdUser user = new IdUser { UserName = userDtoIn.UserName, Email = userDtoIn.EMail, }; var result = await _userManager.CreateAsync(user, userDtoIn.Password); var userDtoOut = new UserDtoOut(); string name = ""; if (result.Succeeded) { var claims = new List <Claim>(); if (!string.IsNullOrWhiteSpace(userDtoIn.FirstName)) { claims.Add(new Claim(JwtClaimTypes.GivenName, userDtoIn.FirstName)); userDtoOut.FirstName = userDtoIn.FirstName; name += userDtoIn.FirstName; } if (!string.IsNullOrWhiteSpace(userDtoIn.LastName)) { claims.Add(new Claim(JwtClaimTypes.FamilyName, userDtoIn.LastName)); userDtoOut.LastName = userDtoIn.LastName; if (name.Count() > 0) { name += " " + userDtoOut.LastName; } else { name += userDtoIn.LastName; } } if (!string.IsNullOrWhiteSpace(userDtoIn.DateOfBirth)) { claims.Add(new Claim(JwtClaimTypes.BirthDate, userDtoIn.DateOfBirth)); userDtoOut.DateOfBirth = userDtoIn.DateOfBirth; } if (!string.IsNullOrWhiteSpace(userDtoIn.Role)) { claims.Add(new Claim(JwtClaimTypes.Role, userDtoIn.Role)); userDtoOut.Role = userDtoIn.Role; } if (!string.IsNullOrWhiteSpace(userDtoIn.UserNumber)) { claims.Add(new Claim(CustomClaims.UserNumber, userDtoIn.UserNumber)); userDtoOut.UserNumber = userDtoIn.UserNumber; } // Add claim to access to IdApi1 and IdUserApi for all users per default. claims.Add(new Claim(CustomClaims.ApiAccess, "IdApi1")); claims.Add(new Claim(CustomClaims.ApiAccess, "IdUserApi")); if (userDtoIn.UserName != userDtoIn.EMail) { name = userDtoIn.UserName; } if (name.Count() == 0) { name = user.Id; } claims.Add(new Claim(JwtClaimTypes.Name, name)); result = await _userManager.AddClaimsAsync(user, claims); await _identityDbContext.SaveChangesAsync(); } if (result.Succeeded) { userDtoOut.Id = user.Id; userDtoOut.UserName = user.UserName; userDtoOut.EMail = user.Email; return(StatusCode(201, userDtoOut)); } return(handleIdentityError(result.Errors, user)); }