Пример #1
0
        private void HandleLogin(object sender, JavascriptMethodEventArgs e)
        {
            var username = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-username').value");
            var password = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-password').value");
            password = HashHelper.CalculateSha512Hash(password);

            var packet = new LoginRequestPacket(username, password);
            NetworkManager.Instance.SendPacket(packet);
        }
        private void ProcessLoginRequest(LoginRequestPacket obj)
        {
            var username = obj.Username;
            var password = obj.Password;

            if (AreCredentialsValid(username, password))
            {

                Logger.Instance.Log(Level.Info, username + " has succesfully authenticated");

                var packet = new LoginResultPacket(LoginResultPacket.LoginResult.Succesful);
                ClientNetworkManager.Instance.SendPacket(packet, obj.Sender);

                // Grab that account
                using (var context = new ServerContext())
                {
                    var account = context.Accounts.FirstOrDefault(x => x.Username.ToLower() == obj.Username);
                    var character = context.Characters.FirstOrDefault(x => x.AccountId == account.AccountId);

                    if(character == null)
                        throw new Exception("A character could not be found under this slot. This should never happen.");

                    // Introduce the entity into the simulation
                    var entity = EntityFactory.CreateCharacter(character, obj.Sender);
                    var mapSimulator = ((ServerServiceContainer) ServiceContainer).MapSimulators[character.MapId];
                    mapSimulator.AddEntity(entity);

                }

            }

            else
            {
                // Reject the user if they aren't able to authenticate

                var packet = new LoginResultPacket(LoginResultPacket.LoginResult.Failed);
                ClientNetworkManager.Instance.SendPacket(packet, obj.Sender);
            }
        }
Пример #3
0
 public static new Packet FromNetBuffer(NetIncomingMessage incomingMessage)
 {
     var packet = new LoginRequestPacket(incomingMessage.ReadString(), incomingMessage.ReadString());
     return packet;
 }