这是一个客户端软件登录器登录网站的。代码如下
private void btnLogin_Click(object sender, EventArgs e)
{
string error = string.Empty;
string userName = txtUserName.Text.Trim();
string password = txtPassWord.Text.Trim();
if (userName.Length == 0)
{
error = "请输入用户名";
txtUserName.Focus();
}
else
{
if (password.Length == 0)
{
error = "请输入密码";
txtPassWord.Focus();
}
else
{
webBrowser.Document.GetElementById("username").InnerText = userName;
webBrowser.Document.GetElementById("password").InnerText = password;
HtmlElement formLogin = webBrowser.Document.Forms["formLogin"];
formLogin.InvokeMember("submit");
while (webBrowser.Document == null)
{
System.Threading.Thread.Sleep(5000);
}
string returnString = webBrowser.Document.GetElementById("hidIsLogin").GetAttribute("value");
if (returnString.ToLower() != "true")
{
error = "账号密码错误";
txtUserName.Focus();
}
else
{
webBrowser.Document.GetElementsByTagName("a")[0].InvokeMember("click");
this.Close();
}
}
}
labAlert.Text = error;
}
这是登录按钮事件,为什么要点二点才对登录网站,第一次点击error为账号密码错误.
string returnString = webBrowser.Document.GetElementById("hidIsLogin").GetAttribute("value");
是不是第一次的时候hidIsLogin这个没有值呢,跟踪一下吧。
看到另一个问如何让winform给webform传dataset的问题,看来这位和那位差不多,先去了解http吧