private async Task _handleLoginDataRequestAsync(ClientLoginDataRequest req)
        {
            var account = await _accountManager.GetAccountAsync(req.AccountID, false, false);

            if (account == null || (!account.IsOnline && !account.IsLoginPending))
            {
                // If the account isn't loaded yet, then it's definitely not logged in or logging in.
                // Refresh account
                account = await _accountManager.GetAccountAsync(req.AccountID, true, true);

                _connectionManager.AddPendingLogin(req.ClientAddress, account);
                account.IVKey = new IVKey(req.Key, req.IV);

                var msg = new NetworkMessageContainer();
                msg.MessageData = new MessageRedisLoginDataResponse(
                    ConnectionManager.ExternalIP.Address.GetAddressBytes(),
                    ConnectionManager.ExternalIP.Port,
                    account.Id,
                    LoginResult.Success
                    );
                msg.MessageType = MessageTypes.Redis_LoginDataResponse;

                _redisServer.PublishObject(ChannelTypes.WebLogin, req.ProcessingWebServerId, msg);
            }
            else if (account.IsOnline) //Check if the account is already logged in
            {
                var msg = new NetworkMessageContainer();
                msg.MessageData = new MessageRedisLoginDataResponse(null, -1, req.AccountID, LoginResult.AlreadyLoggedOn);

                _redisServer.PublishObject(ChannelTypes.WebLogin, req.ProcessingWebServerId, msg);
            }
            else if (account.IsLoginPending) //Check if the login is already pending
            {
                var msg = new NetworkMessageContainer();
                msg.MessageData = new MessageRedisLoginDataResponse(null, -1, req.AccountID, LoginResult.AlreadyPending);

                _redisServer.PublishObject(ChannelTypes.WebLogin, req.ProcessingWebServerId, msg);
            }
        }