📄 frmlogin.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 + -