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()); // 앱 종료 } }
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 }