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