[정수리] C# WinForm Webbrowser 아날로그 로그인 카드

수요에 따라 자동 로그인 카드 찍기 기능을 완성하여 주요 코드를 공유합니다.
부족한 점이 있으면 가르쳐 주십시오!
4
  • 프로필을 읽고 출석체크를 할 계정과 비밀번호를 얻습니다. 자신의 사용자 이름과 비밀번호가 명문인 것을 방지하기 위해 암호화 해독 처리를 했습니다
            private void Form1_Load(object sender, EventArgs e)
            {
                _strFlag = ConfigurationManager.AppSettings[_strConfigPar1] as string;
                _strNetUserName = ConfigurationManager.AppSettings[_strConfigPar2] as string;
                _strNetPassword = ConfigurationManager.AppSettings[_strConfigPar3] as string;
    
                if (_strNetUserName != null && _strNetPassword != null)
                {
                    doDecrypt(_strNetUserName, _strNetPassword);
                    webBrowser1.Navigate(_strLoginUrl);
                    _blFlg = false;
                }
                else
                {
                    MessageBox.Show(_strErrorMessage);
                    Close();
                }
            }

  • 4
  • WebBrowser를 사용했기 때문에 다음과 같은 코드가 있습니다
  •         private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                HtmlDocument doc = webBrowser1.Document;
                try
                {
                    if (doc.Url.ToString() != "" && _strLoginUrl.Equals(doc.Url.ToString()))
                    {
                        string strName = string.Empty;
                        string strPass = string.Empty;
    
                        HtmlElement heForm = doc.GetElementById("LoginForm");
                        HtmlElement heSubmit = doc.All["loginButton"];
    
                        strName = heForm.Children[2].GetElementsByTagName("INPUT")[0].Name;
                        strPass = heForm.Children[2].GetElementsByTagName("INPUT")[1].Name;
                        HtmlElement heUsername = doc.All[strName];
                        HtmlElement hePassword = doc.All[strPass];
    
                        heUsername.SetAttribute("value", _strNetUserName);
                        hePassword.SetAttribute("value", _strNetPassword);
    
                        heSubmit.InvokeMember("click");
                    }
                    else if (!_blFlg && doc.Url.ToString() != "" && _strPressUrl.Equals(doc.Url.ToString()))
                    {
                        HtmlElement heLink = doc.GetElementsByTagName("A")[0];
                        heLink.InvokeMember("onclick");
                        _blFlg = true;
                    }
                }
                catch
                {
                    return;
                }
            }

    4
  • 화면에 암호화된 클릭 버튼이 있어 필요에 따라 암호화하여 만든 프로필을 만들 수 있다
  •         private static void SaveConfig(string ConnenctionString, string strKey)
            {
                XmlDocument doc = new XmlDocument();
                //          
                string strFileName = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
                doc.Load(strFileName);
                //     “add”     
                XmlNodeList nodes = doc.GetElementsByTagName("add");
                for (int i = 0; i < nodes.Count; i++)
                {
                    //        key  
                    XmlAttribute att = nodes[i].Attributes["key"];
                    //                         
                    if (att.Value == strKey)
                    {
                        //              
                        att = nodes[i].Attributes["value"];
                        att.Value = ConnenctionString;
                        break;
                    }
                }
                //       
                doc.Save(strFileName);
            }

    좋은 웹페이지 즐겨찾기