Exemple #1
0
        private void Receive(string data)
        {
            try
            {
                string[] vars   = data.Split('|');
                int      opcode = int.Parse(vars[0]);

                ClientPacket receivePacket = null;

                switch (opcode)
                {
                case 1: receivePacket = new AuthenticateUserTicket(); break;

                case 2: receivePacket = new UserJoinRoom(); break;

                case 3: receivePacket = new UserClickTile(); break;

                case 4: receivePacket = new UserPendingPlayers(); break;

                case 5: receivePacket = new InteractItem(); break;

                case 6: receivePacket = new RequestNavigatorRoom(); break;

                case 7: receivePacket = new ComposeInventoryRequest(); break;

                case 8: receivePacket = new InventoryPoseItem(); break;

                case 9: receivePacket = new InventoryPoseItemOnTile(); break;

                case 10: receivePacket = new PickItem(); break;
                }

                if (receivePacket != null)
                {
                    receivePacket.Client = this;
                    receivePacket.data   = vars;
                    new Thread(receivePacket.ExecuteAllThePacket).Start();
                }
                else if (ConfigManager.GetBool("connection.missing.packet"))
                {
                    Logger.Warn($"Received unknown packet. [{data}]");
                }
            }
            catch (Exception e)
            {
                Logger.Error("Error received data from GC => " + e.ToString());
            }
        }
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            var request = filterContext.HttpContext.Request;
            AuthenticateUserTicket ticket = AuthenticateHelper.AuthenticateTicket();

            if (ticket != null && !ticket.Expired)
            {
                if (request.AppRelativeCurrentExecutionFilePath.ToUpper() == AuthenticateHelper.LoginUrl.ToUpper())
                {//已经登录则不能再进入登录页面
                    filterContext.Result = new RedirectResult(AuthenticateHelper.LoginRedirectPage);
                    return;
                }
                filterContext.HttpContext.User = new AuthenticateUser(ticket);
            }
            else
            {
                filterContext.Result = new RedirectResult(AuthenticateHelper.LoginUrl);
            }
        }