⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmlogin.cs

📁 是一款式CSDN阅读器,可以方便CSDN用户阅读自己感兴趣的内容!
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using feiyun0112.cnblogs.com.CSDNReader.Functions;
using feiyun0112.cnblogs.com.CSDNReader.Model;

namespace feiyun0112.cnblogs.com.CSDNReader
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();

            InitData();
        }

        private string  _viewstate;
        private string  __VIEWSTATE
        {
            get { return _viewstate; }
            set { _viewstate = value; }
        }
        private string _UserName;
        private string UserName
        {
            get { return _UserName; }
            set { _UserName = value; }
        }
        private string _Password;
        private string Password
        {
            get { return _Password; }
            set { _Password = value; }
        }
        private string _ClientKey;
        private string ClientKey
        {
            get { return _ClientKey; }
            set { _ClientKey = value; }
        }
        private string _ExPwd;
        private string ExPwd
        {
            get { return _ExPwd; }
            set { _ExPwd = value; }
        }
        private bool  _SaveState;
        private bool SaveState
        {
            get { return _SaveState; }
            set { _SaveState = value; }
        }
        private string _eventvalidation;
        private string __EVENTVALIDATION
        {
            get { return _eventvalidation; }
            set { _eventvalidation = value; }
        }

        WEBFunc wFunc = new WEBFunc();

        private void InitData()
        {
            DelegateFunc.OnRefreshInfo("正在读取登录信息");

            this.UserName = txtUserName.Text;
            this.Password = txtPassword.Text;
            this.ExPwd = txtExPwd.Text;
            this.SaveState = chkSaveState.Checked;

            
            string strHTML = "";
            strHTML = wFunc.GetHTML("http://passport.csdn.net/UserLogin.aspx");

            if (strHTML != "")
            try
            {
                RegexFunc rFunc = new RegexFunc();
                this.__VIEWSTATE =System.Web.HttpUtility.UrlEncode( rFunc.GetMatch(strHTML, "id=\"__VIEWSTATE\" value=\"(?<VIEWSTATE>.*?)\""));
                this.ClientKey =System.Web.HttpUtility.UrlEncode( rFunc.GetMatch(strHTML, "name=\"ClientKey\" value=\"(?<ClientKey>.*?)\""));
                this.__EVENTVALIDATION =System.Web.HttpUtility.UrlEncode( rFunc.GetMatch(strHTML, "id=\"__EVENTVALIDATION\" value=\"(?<EVENTVALIDATION>.*?)\""));
            }
            catch
            {
                this.__VIEWSTATE ="";
                this.ClientKey ="";
                this.__EVENTVALIDATION = "";
            }

            System.Drawing.Image img = null;
            img = wFunc.GetImg("http://passport.csdn.net/ShowExPwd.aspx?DateTime="+System.DateTime.Now.ToString()+"&strimg="+new Random().NextDouble()+"");
            if (img!=null)
            try
            {
                this.picExPwd.Image  = img;
            }
            catch
            {
                this.picExPwd = null;
            }


        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void txtUserName_TextChanged(object sender, EventArgs e)
        {
            this.UserName = txtUserName.Text;
        }

        private void txtPassword_TextChanged(object sender, EventArgs e)
        {
            this.Password = txtPassword.Text;
        }

        private void txtExPwd_TextChanged(object sender, EventArgs e)
        {
            this.ExPwd = txtExPwd.Text;
        }

        private void chkSaveState_CheckedChanged(object sender, EventArgs e)
        {
            this.SaveState = chkSaveState.Checked;
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (Login())
            {
                this.Close();
            }

            InitData();
        }


        private bool Login()
        {
            if (!ValidCheck())
            {
                return false;
            }
            DelegateFunc.OnRefreshInfo("正在登录");
            string strHTML = "";
            string strPostData =String.Format( "__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE={0}&CSDNUserLogin%24tb_UserName={1}&CSDNUserLogin%24tb_Password={2}&ClientKey={3}&CSDNUserLogin%24tb_ExPwd={4}{5}&from=passport.aspx&__EVENTVALIDATION={6}&CSDNUserLogin%24Image_Login.x=33&CSDNUserLogin%24Image_Login.y=11"
                                                ,this.__VIEWSTATE
                                                ,this.UserName
                                                ,this.Password
                                                ,this.ClientKey
                                                ,this.ExPwd 
                                                ,(this.SaveState?"&CSDNUserLogin%24cb_SaveState=on":"")
                                                ,this.__EVENTVALIDATION
                                                );

            strHTML = wFunc.GetHTML("http://passport.csdn.net/UserLogin.aspx", strPostData, System.Text.Encoding.UTF8);

            RegexFunc rFunc = new RegexFunc();
            string strAlert = rFunc.GetMatch(strHTML, "alert\\(\"(.*)\"\\)");
            if( strAlert !="")
            {
                MsgFunc.ShowWarning(strAlert);
                return false;
            }

            try
            {
                User login = new User();
                login.Name = this.UserName;
                login.Cookies = wFunc.Cookies;
                login.ReqCookies = wFunc.ReqCookies;
                
                Variant.CurrentUser = login;

                
            }
            catch
            {
                Variant.CurrentUser = null;
                return false;
            }

            return true;
        }

        private bool ValidCheck()
        {
            if (this.UserName == "")
            {
                MsgFunc.ShowWarning("登录名必须填写");
                return false;
            }
            if (this.Password == "")
            {
                MsgFunc.ShowWarning("密码必须填写");
                return false;
            }
            if (this.ExPwd == "")
            {
                MsgFunc.ShowWarning("校验码必须填写");
                return false;
            }

            return true;
        }

        private void frmLogin_FormClosed(object sender, FormClosedEventArgs e)
        {
            wFunc = null;
        }

        private void linkLabelReg_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string URL;
            URL = "http://passport.csdn.net/CSDNUserRegister.aspx";
            System.Diagnostics.Process.Start(URL);
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -