private string Authenticate(Credentials login) { if (String.IsNullOrWhiteSpace(login.Username) || String.IsNullOrWhiteSpace(login.Password)) { return(null); } var salt = _cache.Get(login.Username); if (String.IsNullOrWhiteSpace(salt)) { return(null); } var user = _userRepository.GetUserByUsername(login.Username).Result; if (user == null) { return(null); } string saltedPassword = SHA.ComputePasswordAndSalt(user.Password, salt, SHA256.Create()); return(saltedPassword.Equals(login.Password) ? BuildToken(user) : null); }
public async Task IsAuthenticationPossible(string password, bool sucessfulResponse) { var challangeResponse = await DefaultClient.GetAsync("api/auth/Admin"); string challangeBody = await challangeResponse.Content.ReadAsStringAsync(); string salt = challangeBody.Trim('"'); var hashedPassword = SHA.GenerateSHA256String(password); var hashedWithSalt = SHA.ComputePasswordAndSalt(hashedPassword, salt, SHA256.Create()); var jsonString = JsonConvert.SerializeObject(hashedWithSalt); var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var authResponse = await DefaultClient.PostAsync("api/auth/Admin", content); string authBody = await authResponse.Content.ReadAsStringAsync(); Assert.Equal(sucessfulResponse, authResponse.IsSuccessStatusCode); }
public static async Task <AuthenticationHeaderValue> AdminAuthorization(HttpClient client) { var challangeResponse = await client.GetAsync("api/auth/Admin"); string challangeBody = await challangeResponse.Content.ReadAsStringAsync(); string salt = challangeBody.Trim('"'); var hashedPassword = SHA.GenerateSHA256String("AAdmin12!"); var hashedWithSalt = SHA.ComputePasswordAndSalt(hashedPassword, salt, SHA256.Create()); var jsonString = JsonConvert.SerializeObject(hashedWithSalt); var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var authResponse = await client.PostAsync("api/auth/Admin", content); string authBody = await authResponse.Content.ReadAsStringAsync(); string token = authBody.Trim('"'); return(new AuthenticationHeaderValue("Bearer", token)); }