public Task <ClaimsPrincipal> AuthenticateLoginAsync(PostUserLogin loginEntity) { lock (authenticationServiceLock) { return(Task.Run(() => { var user = userRepository.GetUserLogin(loginEntity.Username); if (user == null) { return null; } if (userConnectionsService.GameConnectionService.GetConnection(user.UserLoginID) != null || userConnectionsService.ChatConnectionService.GetConnection(user.UserLoginID) != null) { return null; } if (!Authentication.AuthenticateLoginCredentials(user.PasswordSalt, loginEntity.Password, user.PasswordHash)) { return null; } return GetClaimsPrincipal(user); })); } }
public void Test() { string password = "******"; string salt1 = Authentication.GenerateSalt(); string salt2 = Authentication.GenerateSalt(); string hashPassword1 = Authentication.HashPassword(password, salt1); string hashPassword2 = Authentication.HashPassword(password, salt2); Assert.AreNotEqual(hashPassword1, hashPassword2); Assert.AreEqual(true, Authentication.AuthenticateLoginCredentials(salt1, password, hashPassword1)); Assert.AreEqual(true, Authentication.AuthenticateLoginCredentials(salt2, password, hashPassword2)); }