Beispiel #1
0
        public override void OnHandle(PacketLoginRequest packet)
        {
            base.OnHandle(packet);

            var userManager = Server.Instance.UserManager;
            var result      = userManager.Login(this.Client, packet);
            var user        = result.User;

            if (user != null)
            {
                this.Client.SendPacket(new PacketLoginSuccess()
                {
                    LoginToken = user.LoginToken, SessionToken = user.SessionToken
                });

                this.OnLoginSuccess(user);
            }
            else
            {
                this.Client.SendPacket(new PacketClose()
                {
                    Message = result.ErrorMessage
                });
            }
        }
Beispiel #2
0
        public LoginResult Login(ClienNetworkManager client, PacketLoginRequest packet)
        {
            ChatUserServer user = null;

            lock (this.Users)
            {
                if (this.Users.Any(u => u.LoginToken.Equals(packet.LoginToken)) == true)
                {
                    return(new LoginResult()
                    {
                        ErrorMessage = "Already Logined Account"
                    });
                }
                else
                {
                    var sessionToken = Guid.NewGuid().ToString();
                    user             = new ChatUserServer(packet.LoginToken, sessionToken, client);
                    user.DisplayName = packet.DisplayName;
                    this.Users.Add(user);

                    this.OnLogined(user);

                    return(new LoginResult()
                    {
                        User = user
                    });
                }
            }
        }
Beispiel #3
0
        private void DoNoAuthLogin(INetworkConnection con, Packet pMsg)
        {
            try
            {
                PacketLoginRequest p = pMsg as PacketLoginRequest;
                ServerUser.AccountName  = Guid.NewGuid().ToString(); // assign random session name
                ServerUser.OwningServer = MyServer.ServerUserID;
                Log1.Logger("LoginServer.Inbound.Login").Info("No-auth assigned user name " + ServerUser.AccountName + " from " + RemoteIP + " is attempting login...");
                Log1.Logger("LoginServer.UserIPMap").Info("User [" + p.AccountName + "] from [" + RemoteIP + "] is attempting login.");
                string msg = "";

                PacketLoginResult result = CreateLoginResultPacket();
                if (result.ReplyCode == ReplyType.OK)
                {
                    ServerUser.AuthTicket      = Guid.NewGuid();
                    ServerUser.IsAuthenticated = true;
                    ServerUser.ID = Guid.NewGuid(); // generate random ID for this session

                    ServerUser.Profile.UserRoles = new string[0];
                    result.Parms.SetProperty("AccountName", ServerUser.AccountName);
                    result.Parms.SetProperty(-1, ServerUser.Profile.UserRoles);
                    result.Parms.SetProperty(-2, ServerUser.Profile.MaxCharacters);
                    ConnectionManager.AuthorizeUser(ServerUser);
                }
                pMsg.ReplyPacket = result;
                Log1.Logger("LoginServer.Inbound.Login").Info("Game client *" + ServerUser.AccountName + "* authentication: " + result.ReplyCode.ToString() + ". " + result.ReplyMessage);
            }
            catch (Exception e)
            {
                Log1.Logger("LoginServer.Inbound.Login").Error("Exception thrown whilst player attempted login. " + e.Message, e);
                KillConnection("Error logging in.");
            }
        }