本帖最后由 g1952326 于 2017-6-8 10:20 编辑
已模拟登录成功,用此时的COOKIE访问页面又提示未登录,求成功的例子[C#] 纯文本查看 复制代码 private string cookie = string.Empty;
private void MainFrm_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("about:blank");
}
public List<string> GetLoginHash()
{
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem
{
URL = "http://www.sufeinet.com/member.php?mod=logging&action=login"
};
HttpResult result = http.GetHtml(item);
List<string> listHash = new List<string>();
listHash.Add(HttpHelper.GetBetweenHtml(result.Html, "main_messaqge_", "\">"));
listHash.Add(HttpHelper.GetBetweenHtml(result.Html, "name=\"formhash\" value=\"", "\""));
listHash.Add(HttpHelper.GetSmallCookie(result.Cookie));
return listHash;
}
private void btnLogin_Click(object sender, EventArgs e)
{
Login();
string url = "http://www.sufeinet.com/home.php?mod=spacecp";
//webBrowser1.Document.Cookie = cookie;
foreach (string c in cookie.Split(';'))
{
string[] item = c.Split('=');
if (item.Length == 2)
{
InternetSetCookie(url, null, new Cookie(HttpHelper.URLEncode(item[0]), HttpHelper.URLEncode(item[1]), " expires= GMT", "/").ToString());
}
}
webBrowser1.Navigate(url);
}
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
public void Login()
{
string name = txtName.Text.Trim();
string pwd = txtPwd.Text.Trim();
List<string> listHash = GetLoginHash();
string url = string.Format("http://www.sufeinet.com/member.php?mod=logging&action=login&loginsubmit=yes&loginhash={0}&inajax=1", listHash[0]);
string postData = string.Format("formhash={0}&referer=http%3A%2F%2Fwww.sufeinet.com%2F.%2F&loginfield=username&username={1}&password={2}&questionid=0&answer=&loginsubmit=true", listHash[1], name, pwd);
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem
{
URL = url,
Method = "Post",
Referer = "http://www.sufeinet.com/member.php?mod=logging&action=login",
Cookie = listHash[2],
ContentType = "application/x-www-form-urlencoded",
Postdata = postData
};
HttpResult result = http.GetHtml(item);
cookie = HttpHelper.GetSmallCookie(result.Cookie);
txtResult.Text =cookie+"\r\n\r\n" + result.Html;
}
}
|