Example #1
0
        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);
                }));
            }
        }