Пример #1
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            //유효성 검증
            if (txtURL.Text == string.Empty)
            {
                MessageBox.Show("접속할 서버의 주소가 입력되지 않았습니다");
                return;
            }
            if (txtAuthKey.Text == string.Empty)
            {
                MessageBox.Show("접속을 인증할 보안키가 입력되지 않았습니다");
                return;
            }
            if (txtUserID.Text == string.Empty)
            {
                MessageBox.Show("로그인할 사용자의 ID가 입력되지 않았습니다");
                return;
            }
            if (txtUserPassword.Text == string.Empty)
            {
                MessageBox.Show("로그인할 사용자의 패스워드가 입력되지 않았습니다");
                return;
            }

            //아이디,주소,보안키,보안타입 저장
            if (chStoreServerInfo.Checked)
            {
                Settings.Default.serviceURL      = txtURL.Text;
                Settings.Default.authSeed        = txtAuthKey.Text;
                Settings.Default.UserID          = txtUserID.Text;
                Settings.Default.UseSecurityMode = chSecurityMode.Checked;
                Settings.Default.Save();
            }
            try
            {
                frmMain.htpClientLib = Hitpan5ClientLibrary.getInstance(chSecurityMode.Checked, txtURL.Text, txtAuthKey.Text, txtUserID.Text, txtUserPassword.Text);
                this.DialogResult    = DialogResult.OK;
            }
            catch (Exception ex)
            {
                this.DialogResult = DialogResult.No;
            }
            this.Dispose();
        }
Пример #2
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            // 로그인에 필요한 값을 가져오기
            #region 로그인에 필요한 값들 가져오기
            bool   useSecurityMode   = Settings.Default.UseSecurityMode;
            string ServiceURL        = Settings.Default.serviceURL;
            string SecurityTokenSeed = Settings.Default.SecurityTokenSeed;
            string id = Settings.Default.UserID;
            if (id == null || id == string.Empty)
            {
                id = tstxtID.Text;
            }
            string password = tstxtPassword.Text;
            #endregion

            //각 값들에 대한 유효성 검사
            #region 각 값들에 대한 유효성 검사
            if (ServiceURL == null || !ServiceURL.Contains("http://"))
            {
                MessageBox.Show("접속할 서버 주소가 없습니다");
                return;
            }
            if (SecurityTokenSeed == null || SecurityTokenSeed.Replace(" ", string.Empty) == string.Empty)
            {
                MessageBox.Show("서버에서 사용자를 인증할 보안토큰이 설정되지 않았습니다");
                return;
            }
            if (id == null || id.Replace(" ", string.Empty) == string.Empty)
            {
                MessageBox.Show("아이디가 없습니다");
                return;
            }
            if (password == null || password.Replace(" ", string.Empty) == string.Empty)
            {
                MessageBox.Show("패스워드가 없습니다");
                return;
            }
            #endregion

            try
            {
                //로그인 하기
                #region 로그인과 그에 따른 뷰단조정
                htpClientLib     = Hitpan5ClientLibrary.getInstance(useSecurityMode, ServiceURL, SecurityTokenSeed, id, password);
                menuMain.Enabled = true;

                this.MainMenuCollection = new List <object>();
                foreach (ToolStripItem tsi in tstripLogin.Items)
                {
                    MainMenuCollection.Add(tsi);
                }

                tstripLogin.Items.Clear();
                string welcome = string.Format("   사용자 : {0} 님  ", id);
                tstripLogin.Items.Add(welcome);
                tstripLogin.Items.Add("                 ");
                tstripLogin.Items.Add("| 로그아웃 |");
                #endregion
                #region 로그아웃 이벤트 핸들러 등록
                tstripLogin.Items[2].Click += delegate
                {
                    //로그아웃한 경우의 이벤트 핸들러
                    htpClientLib.Dispose();
                    htpClientLib     = null;
                    menuMain.Enabled = false;
                    tstripLogin.Items.Clear();
                    foreach (ToolStripItem tsi in this.MainMenuCollection)
                    {
                        tstripLogin.Items.Add(tsi);
                    }
                    tstxtPassword.Text = "";
                };
                #endregion
                #region 현재 사용자의 정보 패널 보여주기(나의 권한 조회,나의 비밀번호 변경)
                tstripLogin.Items[0].Click += delegate
                {
                    MessageBox.Show("사용자정보 조회");
                };
                #endregion
            }
            catch (Exception)
            {
                #region 로그인 실패시
                htpClientLib     = null;
                menuMain.Enabled = false;
                return;

                #endregion
            }
            #region 로컬 저장소에 저장된 설정들 가져와서 세팅하기
            foreach (var prop in typeof(CommonSettings).GetProperties())
            {
                try
                {
                    object val = htpClientLib.settingInfo[prop.Name];
                    if (val != null && Convert.ToInt32(val) != 0)
                    {
                        continue;
                    }
                    htpClientLib.settingInfo[prop.Name] = (Enum)Enum.Parse(prop.ReflectedType, Settings.Default[prop.Name].ToString());
                }
                catch (NullReferenceException)
                {
                    continue;
                }
                catch (SettingsPropertyNotFoundException)
                {
                    continue;
                }
            }
            #endregion
            //id 저장
            #region ID저장
            Settings.Default.UserID = id;
            Settings.Default.Save();
            #endregion
        }