Ejemplo n.º 1
0
        private void GetDeviceName()
        {
            try
            {
                var current_network = Connectivity.NetworkAccess; // 현재 네트워크 상태
                if (current_network != NetworkAccess.Internet)    // 네트워크 연결 불가
                {
                    Navigation.PushAsync(new ErrorPage());
                    // 앱 종료
                }
                else
                {
                    var    device = CrossDeviceInfo.Current.Model;
                    string s      = device.ToString();

                    if (Global.android_serial_number != "") // 안드로이드 기종으로 실행시
                    {
                        string   output    = USER_DB.PostDeviceSerialNumber(Global.android_serial_number);
                        string[] tempArray = output.Split('#');
                        if (tempArray[0] == "u") // 회원인 경우
                        {
                            Global.non_user_id  = USER_DB.GetNonUserIDToSerial(Global.android_serial_number);
                            Global.b_user_login = true;
                            Global.b_auto_login = true;
                            Global.ID           = tempArray[1];
                            Global.user         = USER_DB.PostSelectUserToID(Global.ID);
                            Global.adress       = USER_DB.PostSelectAdressToID(Global.ID);
                        }
                        else if (tempArray[0] == "n") // 비회원인경우
                        {
                            Global.non_user_id  = tempArray[1];
                            Global.b_user_login = false;
                            Global.b_auto_login = false;
                            Global.ID           = "";
                            Global.user         = USER_DB.PostSelectUserToID(Global.ID);
                            Global.adress       = USER_DB.PostSelectAdressToID(Global.ID);
                        }
                    }
                    else if (Global.ios_serial_number != "") // ios 기종으로 실행시
                    {
                        string   output    = USER_DB.PostDeviceSerialNumber(Global.ios_serial_number);
                        string[] tempArray = output.Split('#');
                        if (tempArray[0] == "u") // 회원인 경우
                        {
                            Global.non_user_id  = USER_DB.GetNonUserIDToSerial(Global.ios_serial_number);
                            Global.b_user_login = true;
                            Global.b_auto_login = true;
                            Global.ID           = tempArray[1];
                            Global.user         = USER_DB.PostSelectUserToID(Global.ID);
                            Global.adress       = USER_DB.PostSelectAdressToID(Global.ID);
                        }
                        else if (tempArray[0] == "n") // 비회원인경우
                        {
                            Global.non_user_id  = tempArray[1];
                            Global.b_user_login = false;
                            Global.b_auto_login = false;
                            Global.ID           = "";
                            Global.user         = USER_DB.PostSelectUserToID(Global.ID);
                            Global.adress       = USER_DB.PostSelectAdressToID(Global.ID);
                        }
                    }
                    else
                    {
                        Navigation.PushAsync(new ErrorPage());
                        // 앱 종료
                    }

                    ChangeTabInitAsync();
                }
            }
            catch
            {
                Navigation.PushAsync(new ErrorPage());
                // 앱 종료
            }
        }
Ejemplo n.º 2
0
        private void Login()
        {
            #region 네트워크 상태 확인
            var current_network = Connectivity.NetworkAccess; // 현재 네트워크 상태
            if (current_network == NetworkAccess.Internet)    // 네트워크 연결 가능
            {
                if (Global.isloginbtn_clicked)
                {
                    Global.isloginbtn_clicked = false;
                    if (id_box.Text != "" && id_box.Text != null)
                    {
                        if (pw_box.Text != "" && pw_box.Text != null)
                        {
                            rSAFunc.SetRSA("Start");
                            string str = @"{";
                            str += "ID:'" + id_box.Text;  //아이디찾기에선 Name으로
                            str += "',PW:'" + rSAFunc.RSAEncrypt(pw_box.Text);
                            str += "',Rsastring:'" + rSAFunc.privateKeyText;
                            str += "'}";

                            //// JSON 문자열을 파싱하여 JObject를 리턴
                            JObject jo = JObject.Parse(str);

                            UTF8Encoding encoder = new UTF8Encoding();
                            byte[]       data    = encoder.GetBytes(jo.ToString()); // a json object, or xml, whatever...

                            //request.Method = "POST";
                            HttpWebRequest request = WebRequest.Create(Global.WCFURL + "Login_User") as HttpWebRequest;
                            request.Method        = "POST";
                            request.ContentType   = "application/json";
                            request.ContentLength = data.Length;

                            //request.Expect = "application/json";

                            request.GetRequestStream().Write(data, 0, data.Length);

                            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                            {
                                if (response.StatusCode != HttpStatusCode.OK)
                                {
                                    Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
                                }
                                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                                {
                                    var readdata = reader.ReadToEnd();
                                    //Stuinfo test = JsonConvert.DeserializeObject<Stuinfo>(readdata);
                                    switch (int.Parse(readdata))
                                    {
                                    case -1: DisplayAlert("알림", "비밀번호가 틀렸습니다", "OK"); Global.isloginbtn_clicked = true; return;

                                    case 0: DisplayAlert("알림", "아이디가 존재하지 않습니다.", "OK"); Global.isloginbtn_clicked = true; return;

                                    case 1:                                            // 로그인 성공시(아이디와 비밀번호가 일치할 경우 처리)
                                        #region 네트워크 상태 확인
                                        if (current_network == NetworkAccess.Internet) // 네트워크 연결 가능
                                        {
                                            // 네트워크 연결 성공시 유저 데이터와 유저 주소 초기화
                                            Global.user   = USER_DB.PostSelectUserToID(id_box.Text);
                                            Global.adress = USER_DB.PostSelectAdressToID(id_box.Text);
                                        }
                                        else
                                        {
                                            // 문제 발생시 리턴, -> 로그인 성공 실패
                                            DisplayAlert("알림", "네트워크에 연결할 수 없습니다. 로그인에 실패했습니다.", "확인");
                                            return;
                                        }
                                        #endregion

                                        Global.b_user_login = true;             // 회원 로그인 상태
                                        Global.b_auto_login = true;             // 자동 로그인 상태
                                        Global.ID           = id_box.Text;      // 회원 아이디

                                        if (Global.android_serial_number != "") // 안드로이드 기종으로 실행시
                                        {
                                            USER_DB.PostAutoLoginSerialNumber(Global.android_serial_number, Global.ID);
                                        }
                                        else if (Global.ios_serial_number != "")    // ios 기종으로 실행시
                                        {
                                            USER_DB.PostAutoLoginSerialNumber(Global.ios_serial_number, Global.ID);
                                        }
                                        //MainPage.ConfigUpdateIsLogin(); // 회원 로그인 상태 Config 업데이트

                                        DisplayAlert("알림", "로그인에 성공했습니다.", "확인");

                                        if (SH_DB.PostUpdateBasketUserToID(Global.ID, Global.non_user_id) == false)     // 비회원 -> 회원 로그인시 장바구니 목록 이동
                                        {
                                            DisplayAlert("알림", "쇼핑몰 장바구니 목록을 옮기는 과정에 문제가 발생했습니다.", "확인");
                                        }

                                        if (USER_DB.PostGiftUpdateBaskeListToID(Global.non_user_id, Global.ID) == false)
                                        {
                                            App.Current.MainPage.DisplayAlert("알림", "서버점검중입니다", "확인");
                                        }

                                        Navigation.PopToRootAsync();
                                        MainPage mp = (MainPage)Application.Current.MainPage.Navigation.NavigationStack[0];
                                        return;
                                    }
                                }
                            }
                        }
                        else
                        {
                            DisplayAlert("알림", "비밀번호를 입력하세요", "OK");
                            Global.isloginbtn_clicked = true;
                        }
                    }
                    else
                    {
                        DisplayAlert("알림", "아이디를 입력하세요", "OK");
                        Global.isloginbtn_clicked = true;
                    }
                }
            }
            else
            {
                DisplayAlert("알림", "네트워크에 연결할 수 없습니다. 다시 한번 시도해주세요.", "확인");
                return;
            }
            #endregion
        }