in MonolithicApplication/src/Controllers/UserController.cs [58:86]
public async Task<IHttpActionResult> PostUser([FromBody] user user)
{
var search = from u in this.unishopEntitiesContext.users
where u.email == user.email
select u;
if (user.email.IsNullOrWhiteSpace() || !user.email.Contains('@') || !user.email.Contains('.') || search.Count() != 0)
{
return this.BadRequest();
}
byte[] salt;
new RNGCryptoServiceProvider().GetBytes(salt = new byte[16]);
var pbkdf2 = new Rfc2898DeriveBytes(user.password, salt, 10000);
byte[] hash = pbkdf2.GetBytes(20);
byte[] hashBytes = new byte[36];
Array.Copy(salt, 0, hashBytes, 0, 16);
Array.Copy(hash, 0, hashBytes, 16, 20);
user.password = Convert.ToBase64String(hashBytes);
user.user_id = Guid.NewGuid();
this.unishopEntitiesContext.users.Add(user);
await this.unishopEntitiesContext.SaveChangesAsync();
return this.CreatedAtRoute("DefaultApi", new { id = user.user_id }, user);
}