Пример #1
0
    public static void C_LoginHandler(PacketSession session, IMessage packet)
    {
        C_Login       loginPacket   = packet as C_Login;
        ClientSession clientSession = session as ClientSession;

        clientSession.HandleLogin(loginPacket);
    }
Пример #2
0
        public object Login(C_Login parameter)
        {
            Message msg = new Message {
                Error = false
            };

            try
            {
                var data = _dbContext.accounts.Where(x => x.Account1 == parameter.account && x.Password == x.Password).FirstOrDefault();
                if (data != null)
                {
                    Session["informationOfAccount"] = data;
                    msg.Title = "Đăng nhập thành công";
                }
                else
                {
                    msg.Error = true;
                    msg.Title = "Đăng nhập không thành công";
                    msg.Data  = "Không tòn tại tài khoản";
                }
            }
            catch (Exception ex)
            {
                msg.Error = true;
                msg.Data  = ex;
                msg.Title = "Đăng nhập không thành công";
            }
            return(Json(msg, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="hSession"></param>
        /// <param name="userType"></param>
        /// <param name="pin"></param>
        public void Login(uint hSession, CKU userType, string pin)
        {
            C_Login proc = (C_Login)DelegateUtil.GetDelegate(this.hLib, typeof(C_Login));

            byte[] pinBytes = System.Text.Encoding.UTF8.GetBytes(pin);

            checkCKR(proc(hSession, userType, pinBytes, (uint)pinBytes.Length));
        }
 public JsonResult SaveData(C_Login model)
 {
     model.IsValue = false;
     db.C_Login.Add(model);
     db.SaveChanges();
     BuildEmailTemplate(model.ID);
     return(Json("Registration Succes", JsonRequestBehavior.AllowGet));
 }
    public static void S_ConnectedHandler(PacketSession session, IMessage packet)
    {
        Debug.Log("S_ConnectedHandler");
        C_Login loginPacket = new C_Login();

        loginPacket.UniqueId = SystemInfo.deviceUniqueIdentifier;
        Managers.Network.Send(loginPacket);
    }
Пример #6
0
    // Step1
    public static void S_ConnectedHandler(PacketSession session, IMessage packet)
    {
        C_Login       loginPacket   = new C_Login();
        ServerSession serverSession = (ServerSession)session;

        loginPacket.UniqueId = $"DummyClient_{serverSession.DummyId.ToString("0000")}";
        serverSession.Send(loginPacket);
    }
Пример #7
0
        public async void Fn_Salir(object sender, EventArgs _args)
        {
            string prime   = App.v_membresia.Split('-')[0];
            string _membre = "";///los 4 numeros de la mebresia sin laletra

            for (int i = 0; i < prime.Length - 1; i++)
            {
                _membre += prime[i];
            }
            string        _conse     = App.v_membresia.Split('-')[1];
            C_Login       _login     = new C_Login(_membre, App.v_letra, _conse, "");
            string        _jsonLog   = JsonConvert.SerializeObject(_login, Formatting.Indented);
            string        _DirEnviar = "http://tratoespecial.com/token_notification.php";
            StringContent _content   = new StringContent(_jsonLog, Encoding.UTF8, "application/json");

            Console.WriteLine(" infosss " + _jsonLog);

            //crear el cliente
            HttpClient _client = new HttpClient();

            try
            {
                //mandar el json con el post
                HttpResponseMessage _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                string _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                if (_respuesta == "1")
                {
                    IsPresented = false;
                    App.Fn_CerrarSesion();
                    App.Current.MainPage = new V_Master(false, "Bienvenido a Trato Especial");
                }
                else
                {
                    await DisplayAlert("Error", "No se pudo cerrar sesion", "Aceptar");

                    IsPresented = false;
                }
            }
            catch
            {
                bool _elige = await DisplayAlert("Error", "No se pudo cerrar sesion Correctamente,\n ¿Cerrar sesión de forma local?", "Si", "No");

                if (_elige)
                {
                    IsPresented = false;
                    App.Fn_CerrarSesion();
                    App.Current.MainPage = new V_Master(false, "Bienvenido a Trato Especial");
                }
                else
                {
                    IsPresented = false;
                }
            }
        }
        public JsonResult RegisterConfirm(int regId)
        {
            C_Login data = db.C_Login.Where(a => a.ID == regId).FirstOrDefault();

            data.IsValue = true;
            db.SaveChanges();
            var msg = "Your email is verified";

            return(Json(msg, JsonRequestBehavior.AllowGet));
        }
Пример #9
0
    public static void S_ConnectedHandler(PacketSession session, IMessage packet)
    {
        Debug.Log("S_ConnectedHandler");
        C_Login loginPacket = new C_Login();

        string path = Application.dataPath;

        loginPacket.UniqueId = path.GetHashCode().ToString();
        Managers.Network.Send(loginPacket);
    }
Пример #10
0
    // Step 1
    public static void S_ConnectedHandler(PacketSession session, IMessage packet)// 연결
    {
        C_Login loginPacket = new C_Login();

        // 클라이언트 겹치지 않는 아이디를 만들려고
        ServerSession serverSession = session as ServerSession;

        loginPacket.UniqueId = $"DummyClient_{serverSession.DummyID.ToString("0000")}";

        serverSession.Send(loginPacket);
    }
Пример #11
0
    public void RecvLogin(BaseWebResponse baseWebResponse)
    {
        WebResponseLogin response = (WebResponseLogin)baseWebResponse;

        GameManager.Instance.LoginMyPlayer(response.pid);

        // 게임 서버에 로그인 요청
        C_Login cLogin = new C_Login();

        cLogin.Pid = response.pid;
        NetworkManager.Game.Send(cLogin);
    }
        public JsonResult CheckValidUser(C_Login model)
        {
            string result   = "Fail";
            var    dataItem = db.C_Login.Where(x => x.Email == model.Email && x.Password == model.Password && x.IsValue == true).SingleOrDefault();

            if (dataItem != null)
            {
                Session["UserID"]   = dataItem.ID.ToString();
                Session["UserName"] = dataItem.Username.ToString();
                result = "Succes";
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public void HandleLogin(C_Login loginPacket)
        {
            //Console.WriteLine($"UniqueId({loginPacket.UniqueId})");

            //TODO : 보안체크
            if (ServerState != PlayerServerState.ServerStateLogin)
            {
                return;
            }

            //TODO : 문제
            // - 동시에 다른 사람이 같은 uniqueId를 보낸다면?
            // - 악의적으로 같은 패킷을 여러번 보낸다면? DB에 과부하가 발생할 수 있음
            // - 쌩뚱맞은 타이밍에 이 패킷을 보낸다면?

            using (AppDbContext db = new AppDbContext())
            {
                AccountDb findAccount = db.Accounts
                                        .Include(a => a.Players)
                                        .Where(a => a.AccountName == loginPacket.UniqueId)
                                        .FirstOrDefault();

                if (findAccount != null)
                {
                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    Send(loginOk);
                    Console.WriteLine($"기존 캐릭터 LoginOK = {loginOk.LoginOk}");
                }
                else
                {
                    AccountDb newAccount = new AccountDb()
                    {
                        AccountName = loginPacket.UniqueId
                    };
                    db.Accounts.Add(newAccount);
                    db.SaveChanges();                    // TODO : Exception

                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    Send(loginOk);
                    Console.WriteLine($"신규캐릭터 LoginOK = {loginOk.LoginOk}");
                }
            }
        }
Пример #14
0
    public static void S_ConnectedHandler(PacketSession session, IMessage packet)// 연결
    {
        // S_Connected connectedPacket = packet as S_Connected;
        // 연결중입니다

        Debug.Log("S_ConnectedHandler");
        C_Login loginPacket = new C_Login();

        // 클라이언트 겹치지 않는 아이디를 만들려고
        string path = Application.dataPath;

        loginPacket.UniqueId = path.GetHashCode().ToString();

        Managers.Network.Send(loginPacket);
    }
Пример #15
0
        public async void Token()
        {
            string prime   = App.v_membresia.Split('-')[0];
            string _membre = "";                       ///los 4 numeros de la mebresia sin laletra

            for (int i = 0; i < prime.Length - 1; i++) //-1 para no agarrar la letra
            {
                _membre += prime[i];
            }
            string  _conse = App.v_membresia.Split('-')[1];
            C_Login _login = new C_Login(_membre, App.v_letra, _conse, App.Fn_GEtToken());
            //crear el json
            string        _jsonLog   = JsonConvert.SerializeObject(_login, Formatting.Indented);
            string        _DirEnviar = "http://tratoespecial.com/token_notification.php";
            StringContent _content   = new StringContent(_jsonLog, Encoding.UTF8, "application/json");
            HttpClient    _client    = new HttpClient();

            //Console.WriteLine(" infosss " + _jsonLog);
            try
            {
                //mandar el json con el post
                HttpResponseMessage _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                string _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                if (_respuesta == "1")
                {
                    Console.Write("token 1");
                }
                else
                {
                    Console.WriteLine("token no 1");
                }
            }
            catch
            {
                Console.WriteLine("error token");
            }
        }
Пример #16
0
        //public async void Fn_Login(object sender, EventArgs _args)
        public void Fn_Login(object sender, EventArgs _args)
        {
            mensajes.Text = usu.Text + " pass " + pass.Text;
            C_Login _aenviar = new C_Login(usu.Text, pass.Text);
            ////crear el json a enviar
            //string _json = JsonConvert.SerializeObject(_aenviar);
            ////crear el cliente que deja enviar por post
            //HttpClient _clien = new HttpClient();
            ////dar formato al json y enviar
            //StringContent _conten = new StringContent(_json, Encoding.UTF8, "application/json");
            ////se envia y espera resultado
            //HttpResponseMessage result = await _clien.PostAsync("direccion", _conten);
            //if(result.IsSuccessStatusCode)
            //{

            //}
            //// handling the answer
            //var resultString = await result.Content.ReadAsStringAsync();
            //var post = JsonConvert.DeserializeObject(resultString);
            ////aca pones lo que regresa la base de datos
            //mensajes.Text = "info de regreso";
        }
Пример #17
0
        protected void btnLOGIN_Click(object sender, EventArgs e)
        {
            C_Login log = new C_Login();

            if (txtUsuario.Text == "" || txtContraseña.Text == "")
            {
                msjMensaje.Text = "Falta usuario o contraseña!!";
            }
            else
            {
                SqlDataReader leer;
                log.Usuario  = txtUsuario.Text;
                log.Password = txtContraseña.Text;
                leer         = log.IniciarSesion();
                if (leer.Read() == true)
                {
                    Response.Redirect("Productos.aspx");
                }
                else
                {
                    msjMensaje.Text = "usuario o contrasela incorrecta";
                }
            }
        }
Пример #18
0
 public static void PKCS11_init(string lib)
 {
     initialize          = CreateDynamicDllInvoke <C_Initialize>("C_Initialize", lib);
     open_session        = CreateDynamicDllInvoke <C_OpenSession>("C_OpenSession", lib);
     close_session       = CreateDynamicDllInvoke <C_CloseSession>("C_CloseSession", lib);
     login               = CreateDynamicDllInvoke <C_Login>("C_Login", lib);
     logout              = CreateDynamicDllInvoke <C_Logout>("C_Logout", lib);
     create_object       = CreateDynamicDllInvoke <C_CreateObject>("C_CreateObject", lib);
     get_slot_list       = CreateDynamicDllInvoke <C_GetSlotList>("C_GetSlotList", lib);
     get_attribute_value = CreateDynamicDllInvoke <C_GetAttributeValue>("C_GetAttributeValue", lib);
     get_mechanism_list  = CreateDynamicDllInvoke <C_GetMechanismList>("C_GetMechanismList", lib);
     get_slot_info       = CreateDynamicDllInvoke <C_GetSlotInfo>("C_GetSlotInfo", lib);
     get_token_info      = CreateDynamicDllInvoke <C_GetTokenInfo>("C_GetTokenInfo", lib);
     get_session_info    = CreateDynamicDllInvoke <C_GetSessionInfo>("C_GetSessionInfo", lib);
     get_info            = CreateDynamicDllInvoke <C_GetInfo>("C_GetInfo", lib);
     open_session        = CreateDynamicDllInvoke <C_OpenSession>("C_OpenSession", lib);
     close_session       = CreateDynamicDllInvoke <C_CloseSession>("C_CloseSession", lib);
     find_objects_init   = CreateDynamicDllInvoke <C_FindObjectsInit>("C_FindObjectsInit", lib);
     find_objects        = CreateDynamicDllInvoke <C_FindObjects>("C_FindObjects", lib);
     find_objects_final  = CreateDynamicDllInvoke <C_FindObjectsFinal>("C_FindObjectsFinal", lib);
     sign           = CreateDynamicDllInvoke <C_Sign>("C_Sign", lib);
     destroy_object = CreateDynamicDllInvoke <C_DestroyObject>("C_DestroyObject", lib);
     finalize       = CreateDynamicDllInvoke <C_Finalize>("C_Finalize", lib);
 }
Пример #19
0
        public async void Fn_Login(object sender, EventArgs _args)
        {
            if (Fn_Condiciones())
            {
                StackMen.IsVisible = true;
                Mensajes_over.Text = " Comprobando informacion\n";
                Regex MembreRegex = new Regex(@"^([0-9]){4}([A-Z]){1}-([0-9]){4}$");
                if (MembreRegex.IsMatch(usu.Text))
                {
                    string prime   = usu.Text.Split('-')[0];
                    string _membre = "";///los 4 numeros de la mebresia sin laletra
                    for (int i = 0; i < prime.Length - 1; i++)
                    {
                        _membre += prime[i];
                    }
                    string  letra  = prime[prime.Length - 1].ToString();
                    string  _conse = usu.Text.Split('-')[1];
                    C_Login _login = new C_Login(_membre, letra, _conse, pass.Text, fol.Text);
                    //crear el json
                    string _jsonLog = JsonConvert.SerializeObject(_login, Formatting.Indented);
                    Console.Write("Envia para login" + _jsonLog);
                    //mostrar la pantalla con mensajes
                    // Mensajes_over.Text +=_jsonLog ;
                    //crear el cliente
                    HttpClient    _client    = new HttpClient();
                    string        _DirEnviar = "http://tratoespecial.com/login.php";
                    StringContent _content   = new StringContent(_jsonLog, Encoding.UTF8, "application/json");
                    //mandar el json con el post
                    try
                    {  //getting exception in the following line    //HttpResponseMessage upd_now_playing = await cli.PostAsync(new Uri("http://ws.audioscrobbler.com/2.0/", UriKind.RelativeOrAbsolute), tunp);
                        HttpResponseMessage _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                        if (_respuestaphp.StatusCode == System.Net.HttpStatusCode.OK)
                        {
                            string _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                            if (_respuesta == "0")
                            {
                                Mensajes_over.Text += "\n Error en los datos";
                                Reinten.IsVisible   = true;
                            }
                            else if (_respuesta == "1" || _respuesta == "2")
                            {
                                string _noespacios = "";
                                string _usutexto   = usu.Text;
                                for (int i = 0; i < _usutexto.Length; i++)
                                {
                                    string _temp = _usutexto[i].ToString();
                                    if (_temp != " ")
                                    {
                                        _noespacios += _usutexto[i];
                                    }
                                }
                                Console.WriteLine("Login empre" + _respuesta);
                                //cambiar a logeado
                                //StackMen.IsVisible = false;
                                Perf _perf = new Perf();
                                _perf.v_fol    = fol.Text;
                                _perf.v_membre = _noespacios;
                                _perf.v_letra  = letra;
                                //crear el json
                                string _jsonper = JsonConvert.SerializeObject(_perf, Formatting.Indented);
                                Console.Write("json para perfil" + _jsonper);
                                //mostrar la pantalla con mensajes
                                //await DisplayAlert("envia login ", _jsonper, "Sigue");
                                // Mensajes_over.Text = "\n" + _jsonper + "\n  valor llega"+_respuesta+"\n";
                                //crear el cliente
                                _client    = new HttpClient();
                                _DirEnviar = "http://tratoespecial.com/query_perfil.php";
                                _content   = new StringContent(_jsonper, Encoding.UTF8, "application/json");
                                try
                                {
                                    //mandar el json con el post
                                    _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                                    _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                                    C_PerfilGen _nuePer = JsonConvert.DeserializeObject <C_PerfilGen>(_respuesta);
                                    //Mensajes_over.Text += _nuePer.Fn_GetDatos();
                                    // await DisplayAlert("Info del perfil", _nuePer.Fn_GetDatos(), "Aceptar");

                                    App.Fn_GuardarDatos(_nuePer, _noespacios, fol.Text, letra);
                                    Console.Write("json para perfil medicoo" + _jsonper);
                                    _DirEnviar = "http://tratoespecial.com/query_perfil_medico.php";
                                    //membre  letraa folio
                                    _content = new StringContent(_jsonper, Encoding.UTF8, "application/json");
                                    try
                                    {
                                        //mandar el json con el post
                                        _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                                        _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                                        C_PerfilMed _nuePerMEd = new C_PerfilMed();
                                        if (string.IsNullOrEmpty(_respuesta))
                                        {
                                            _nuePerMEd = new C_PerfilMed(App.v_perfil.v_idsexo);
                                        }
                                        else
                                        {
                                            _nuePerMEd = JsonConvert.DeserializeObject <C_PerfilMed>(_respuesta);
                                        }
                                        //Mensajes_over.Text ="info medica\n" + _nuePerMEd.Fn_Info();
                                        App.Fn_GuardarDatos(_nuePerMEd, _noespacios, fol.Text, letra);
                                        //   Console.Write("perfil medico ", _nuePerMEd.Fn_Info());
                                        //cargar la nueva pagina de perfil
                                        string _nombre = (_nuePer.v_Nombre.Split(' ')[0]);
                                        _login = new C_Login(_membre, letra, _conse, App.Fn_GEtToken());
                                        //crear el json
                                        _jsonLog   = JsonConvert.SerializeObject(_login, Formatting.Indented);
                                        _DirEnviar = "http://tratoespecial.com/token_notification.php";
                                        _content   = new StringContent(_jsonLog, Encoding.UTF8, "application/json");
                                        Console.WriteLine(" infosss " + _jsonLog);
                                        try
                                        {
                                            //mandar el json con el post
                                            _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                                            _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                                            if (_respuesta == "1")
                                            {
                                                App.v_log = "1";
                                                Application.Current.MainPage = new V_Master(true, "Bienvenido " + App.v_perfil.v_Nombre);
                                            }
                                            else
                                            {
                                                Mensajes_over.Text = "Error";
                                                Reinten.IsVisible  = true;
                                            }
                                        }
                                        catch (HttpRequestException exception)
                                        {
                                            await DisplayAlert("Error", exception.Message, "Aceptar");

                                            Reinten.IsVisible = true;
                                        }
                                    }
                                    catch (HttpRequestException exception)
                                    {
                                        await DisplayAlert("Error", exception.Message, "Aceptar");

                                        Reinten.IsVisible = true;
                                    }
                                }
                                catch (HttpRequestException exception)
                                {
                                    await DisplayAlert("Error", exception.Message, "Aceptar");

                                    Reinten.IsVisible = true;
                                }
                            }
                            else
                            {
                                //Mensajes_over.Text = "otra cosa que no entra en el if " + _respuesta;
                                Mensajes_over.Text = "Error";

                                Reinten.IsVisible = true;
                            }
                        }
                    }
                    catch (HttpRequestException ex)
                    {
                        Mensajes_over.Text = ex.Message.ToString();
                        Reinten.IsVisible  = true;
                    }
                }
                else
                {
                    //Mensajes_over.Text = "otra cosa que no entra en el if " + _respuesta;
                    Mensajes_over.Text = "No contiene el formato de membresia\n 0000F-0000";
                    Reinten.IsVisible  = true;
                }
            }
        }
Пример #20
0
        public void HandleLogin(C_Login loginPacket)
        {
            // TODO 보안체크 더 강하게
            if (ServerState != PlayerServerState.ServerStateLogin)
            {
                return;
            }

            // TODO 각종 상황에 대비
            // -동시?
            // -악질 패킷
            // -이상한 타이밍
            LobbyPlayers.Clear();
            using (AppDbContext db = new AppDbContext())
            {
                AccountDb findAccount = db.Accounts
                                        .Include(a => a.Players)
                                        .Where(a => a.AccountName == loginPacket.UniqueId)
                                        .FirstOrDefault();

                if (findAccount != null)
                {                                          // 로그인 성공
                    AccountDbId = findAccount.AccountDbId; // Id는 자주쓰니 기억
                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    foreach (PlayerDb playerDb in findAccount.Players)
                    {
                        LobbyPlayerInfo lobbyPlayer = new LobbyPlayerInfo()
                        {
                            PlayerDbId = playerDb.PlayerDbId,
                            Name       = playerDb.PlayerName,
                            StatInfo   = new StatInfo()
                            {
                                Level    = playerDb.Level,
                                Hp       = playerDb.Hp,
                                MaxHp    = playerDb.MaxHp,
                                Attack   = playerDb.Attack,
                                Speed    = playerDb.Speed,
                                TotalExp = playerDb.TotalExp
                            }
                        };

                        // 메모리에 들고있는다 DB접근 최소화
                        LobbyPlayers.Add(lobbyPlayer);
                        // 패킷을 넣어준다
                        loginOk.Players.Add(lobbyPlayer);
                    }
                    Send(loginOk);

                    // 로비로 이동
                    ServerState = PlayerServerState.ServerStateLobby;
                }
                else
                { // 실패
                  // TEMP_ 새계정으로
                    AccountDb newAccount = new AccountDb()
                    {
                        AccountName = loginPacket.UniqueId
                    };
                    db.Accounts.Add(newAccount);
                    bool success = db.SaveChangesEx();
                    if (success == false)
                    {
                        return;
                    }

                    AccountDbId = newAccount.AccountDbId;        // Id는 자주쓰니 기억

                    // 로그인 실패
                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    Send(loginOk);

                    // 로비로 이동
                    ServerState = PlayerServerState.ServerStateLobby;
                }
            }
        }
Пример #21
0
        public async void Fn_Activo()
        {
            //1 es ya
            if (App.v_perfil.v_activo == "1")
            {
                G_Editar.IsVisible = true;
                G_Pagar.IsVisible  = false;
                M_Editar.IsVisible = true;
                await Task.Delay(10);
            }//no esta activado falta pagar  //else if(App.v_perfil.v_activo=="0")
            else if (App.v_perfil.v_activo == "0" && App.v_folio == "0")
            {
                string prime   = App.v_membresia.Split('-')[0];
                string _membre = "";
                for (int i = 0; i < prime.Length - 1; i++)
                {
                    _membre += prime[i];
                }
                string letra   = prime[prime.Length - 1].ToString();
                string _conse  = App.v_membresia.Split('-')[1];
                string _nombre = "";
                string _costo  = "";
                //familiar 1740   indi  580    empre por persona  464
                if (letra == "F")
                {
                    _nombre = "Pago membresia Familiar de Trato Especial";
                    _costo  = "1740";
                }
                else if (letra == "I")
                {
                    _nombre = "Pago membresia Indiviual de Trato Especial";
                    _costo  = "580";
                }
                else if (letra == "E")
                {
                    _nombre = "Pago membresia Empresarial de Trato Especial";

                    _costo = (int.Parse("464") * int.Parse(App.v_perfil.v_numEmple)).ToString();
                }
                else
                {
                    await DisplayAlert("Error", "error en letra", "aceptar");
                }
                v_pagar = new Pagar(_membre, letra, _conse, _costo, _nombre);

                G_Editar.IsVisible = false;
                M_Editar.IsVisible = false;
                G_Pagar.IsVisible  = true;
                await DisplayAlert("Aviso", "Tu cuenta no está activada, es posible que tengas acceso limitado", "Aceptar");
            }
            else if (App.v_perfil.v_activo == "0" && App.v_folio == "1")
            {
                G_Editar.IsVisible = false;
                M_Editar.IsVisible = false;
                await DisplayAlert("Aviso", "Tu cuenta no está activada, es posible que tengas acceso limitado", "Aceptar");
            }

            ///actualizaar el token
            string primetok   = App.v_membresia.Split('-')[0];
            string _membreTok = "";

            for (int i = 0; i < primetok.Length - 1; i++)
            {
                _membreTok += primetok[i];
            }
            string _conseTok = App.v_membresia.Split('-')[1];

            string _token = "";

            if (App.Fn_GEtToken() != "a")
            {
                _token = "";
            }
            else
            {
                _token = App.Fn_GEtToken();
            }


            C_Login       _login     = new C_Login(_membreTok, App.v_letra, _conseTok, _token);
            string        _jsonLog   = JsonConvert.SerializeObject(_login, Formatting.Indented);
            string        _DirEnviar = "http://tratoespecial.com/token_notification.php";
            StringContent _content   = new StringContent(_jsonLog, Encoding.UTF8, "application/json");

            Console.WriteLine(" infosss " + _jsonLog);
            //crear el cliente
            HttpClient _client = new HttpClient();

            try
            {
                //mandar el json con el post
                HttpResponseMessage _respuestaphp = await _client.PostAsync(_DirEnviar, _content);

                string _respuesta = await _respuestaphp.Content.ReadAsStringAsync();

                if (_respuesta == "1")
                {
                    Console.Write("token registrado correctamente");
                }
                else
                {
                    Console.Write("token no se pudo subir");
                }
            }
            catch
            {
                Console.Write("error token");
            }
        }
Пример #22
0
        public void HandleLogin(C_Login loginPacket)
        {
            // TODO : 이런 저런 보안 체크
            if (ServerState != PlayerServerState.ServerStateLogin)
            {
                return;
            }

            // TODO : 문제가 있긴 있다
            // - 동시에 다른 사람이 같은 UniqueId을 보낸다면?
            // - 악의적으로 여러번 보낸다면
            // - 쌩뚱맞은 타이밍에 그냥 이 패킷을 보낸다면?

            LobbyPlayers.Clear();

            using (AppDbContext db = new AppDbContext())
            {
                AccountDb findAccount = db.Accounts
                                        .Include(a => a.Players)
                                        .Where(a => a.AccountName == loginPacket.UniqueId).FirstOrDefault();

                if (findAccount != null)
                {
                    // AccountDbId 메모리에 기억
                    AccountDbId = findAccount.AccountDbId;

                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    foreach (PlayerDb playerDb in findAccount.Players)
                    {
                        LobbyPlayerInfo lobbyPlayer = new LobbyPlayerInfo()
                        {
                            PlayerDbId = playerDb.PlayerDbId,
                            Name       = playerDb.PlayerName,
                            StatInfo   = new StatInfo()
                            {
                                Level    = playerDb.Level,
                                Hp       = playerDb.Hp,
                                MaxHp    = playerDb.MaxHp,
                                Attack   = playerDb.Attack,
                                Speed    = playerDb.Speed,
                                TotalExp = playerDb.TotalExp
                            }
                        };

                        // 메모리에도 들고 있다
                        LobbyPlayers.Add(lobbyPlayer);

                        // 패킷에 넣어준다
                        loginOk.Players.Add(lobbyPlayer);
                    }

                    Send(loginOk);
                    // 로비로 이동
                    ServerState = PlayerServerState.ServerStateLobby;
                }
                else
                {
                    AccountDb newAccount = new AccountDb()
                    {
                        AccountName = loginPacket.UniqueId
                    };
                    db.Accounts.Add(newAccount);
                    bool success = db.SaveChangesEx();
                    if (success == false)
                    {
                        return;
                    }

                    // AccountDbId 메모리에 기억
                    AccountDbId = newAccount.AccountDbId;

                    S_Login loginOk = new S_Login()
                    {
                        LoginOk = 1
                    };
                    Send(loginOk);
                    // 로비로 이동
                    ServerState = PlayerServerState.ServerStateLobby;
                }
            }
        }