private void OPTION_5_OBJECT_Click(object sender, EventArgs e) { if (AutoLogin.IsEnabled( )) { (new AutoLoginManagerForm( )).ShowDialog( ); } else { (new AutoLoginSettingForm( )).ShowDialog( ); } }
private void NaverLoginForm_Load(object sender, EventArgs e) { this.AUTOLOGIN_TITLE.Parent = BACKGROUND_SPLASH; this.AUTOLOGIN_DESC.Parent = BACKGROUND_SPLASH; this.browserBehind.Visible = false; Task.Factory.StartNew(() => { if (Utility.IsInternetConnected( )) { if (AutoLogin.IsEnabled( )) { SetMode(true); SetMessage("계정 자동 로그인 정보를 불러오는 중 "); string accountString = null; AutoLogin.GetAccountDataResult result = AutoLogin.GetAccountData(out accountString); switch (result) { case AutoLogin.GetAccountDataResult.Success: if (!string.IsNullOrEmpty(accountString)) { string[] dataTable = accountString.Trim( ).Split('\n'); if (dataTable.Length == 3) { if (this.InvokeRequired) { this.Invoke(new Action(() => this.AUTOLOGIN_TITLE.Text = dataTable[2].Trim( ))); } else { this.AUTOLOGIN_TITLE.Text = dataTable[2].Trim( ); } SetMessage("자동 로그인을 시도하고 있습니다, 잠시만.. 기다려주세요 "); //Thread.Sleep( 1000 ); CookieCollection collection; NaverRequest.NaverLoginResult result2 = NaverRequest.NaverAccountLogin(dataTable[0], dataTable[1], out collection); switch (result2) { case NaverRequest.NaverLoginResult.Success: StringBuilder sb = new StringBuilder( ); foreach (Cookie i in collection) { sb.Append(i.Name + "=" + i.Value + "; "); } GlobalVar.COOKIES = sb.ToString( ).Substring(0, sb.Length - 2); GlobalVar.COOKIES_LIST = Utility.CookieParse(GlobalVar.COOKIES); bool isValidAccount = NaverRequest.AccountPermissionCheck( ); if (isValidAccount) { SetMessage("계정 로그인을 완료했습니다.", true); Thread.Sleep(500); if (this.InvokeRequired) { this.Invoke(new Action(() => this.Close( ))); } else { this.Close( ); } break; } else { NotifyBox.Show(this, "오류", "죄송합니다, 해당 계정은 연애혁명 공식 팬카페 '카페혁명 우윳빛깔 232'의 스탭이 아닙니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); Application.Exit( ); return; } case NaverRequest.NaverLoginResult.ChptchaRequired: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인에 실패했습니다, 자동 입력 방지 문자를 입력해야 합니다.", NotifyBoxType.OK, NotifyBoxIcon.Warning); SetMode(false); break; case NaverRequest.NaverLoginResult.IDorPWDError: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인에 실패했습니다, 아이디 또는 비밀번호가 올바르지 않습니다\n자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Warning); AutoLogin.DeleteAccountData( ); SetMode(false); break; case NaverRequest.NaverLoginResult.SecurityBlocked: Utility.OpenWebPage("https://nid.naver.com/user2/help/myInfo.nhn?m=viewSecurity&menu=security", this); NotifyBox.Show(this, "알림", "죄송합니다, 자동 로그인에 실패했습니다\n자동 로그인을 사용하시려면 네이버 계정 보안 설정에서 '로그인 차단 설정' 또는 '새로운 기기 로그인 알림 설정'을 해제해주세요.", NotifyBoxType.OK, NotifyBoxIcon.Information); SetMode(false); break; case NaverRequest.NaverLoginResult.RequestError: NotifyBox.Show(this, "오류", "죄송합니다, 로그인에 실패했습니다, 서버 오류가 발생했습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); SetMode(false); break; } } else { NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 데이터 구조 문제가 발생했습니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); SetMode(false); } } else { NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 데이터 구조 문제가 발생했습니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); SetMode(false); } break; case AutoLogin.GetAccountDataResult.FileNotFound: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 파일을 찾을 수 없습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); SetMode(false); break; case AutoLogin.GetAccountDataResult.DecryptFailed: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 복호화 오류가 발생했습니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); SetMode(false); break; case AutoLogin.GetAccountDataResult.Unknown: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 알 수 없는 오류가 발생했습니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); SetMode(false); break; default: NotifyBox.Show(this, "오류", "죄송합니다, 자동 로그인 데이터를 불러오지 못했습니다, 알 수 없는 오류가 발생했습니다, 자동 로그인이 해제되었습니다.", NotifyBoxType.OK, NotifyBoxIcon.Error); AutoLogin.DeleteAccountData( ); SetMode(false); break; } } else { SetMode(false); } } else { NotifyBox.Show(this, "네트워크 오프라인", "죄송합니다, 이 컴퓨터는 네트워크에 연결되지 않았습니다, 우윳빛깔 카페스탭은 온라인 상태에서만 사용하실 수 있습니다.", NotifyBoxType.OK, NotifyBoxIcon.Warning); Application.Exit( ); } }); }