示例#1
0
 private void OPTION_5_OBJECT_Click(object sender, EventArgs e)
 {
     if (AutoLogin.IsEnabled( ))
     {
         (new AutoLoginManagerForm( )).ShowDialog( );
     }
     else
     {
         (new AutoLoginSettingForm( )).ShowDialog( );
     }
 }
示例#2
0
        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( );
                }
            });
        }