public async Task <ActionResult <UsersEmp> > PostUsersEmp(UsersEmp usersEmp) { byte[] salt = new byte[128 / 8]; using (var rng = RandomNumberGenerator.Create()) { rng.GetBytes(salt); } usersEmp.Active = true; usersEmp.PasswordSalt = Convert.ToBase64String(salt); usersEmp.Password = HashingHelper.HashUsingPbkdf2(usersEmp.Password, usersEmp.PasswordSalt); _context.UsersEmp.Add(usersEmp); await _context.SaveChangesAsync(); return(CreatedAtAction("GetUsersEmp", new { id = usersEmp.UserId }, usersEmp)); }
public static string GenerateTokenEmp(UsersEmp user) { var tokenHandler = new JwtSecurityTokenHandler(); var key = Convert.FromBase64String(Secret); var claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.NameIdentifier, user.UserId.ToString()), new Claim("IsBlocked", user.Blocked.ToString()) }); var signingCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = claimsIdentity, Issuer = Issuer, Audience = Audience, Expires = DateTime.Now.AddMinutes(15), SigningCredentials = signingCredentials, }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }
public async Task <IActionResult> PutUsersEmp(decimal id, UsersEmp usersEmp) { byte[] salt = new byte[128 / 8]; using (var rng = RandomNumberGenerator.Create()) { rng.GetBytes(salt); } usersEmp.PasswordSalt = Convert.ToBase64String(salt); usersEmp.Password = HashingHelper.HashUsingPbkdf2(usersEmp.Password, usersEmp.PasswordSalt); if (id != usersEmp.UserId) { return(BadRequest()); } _context.Entry(usersEmp).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UsersEmpExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }