首页 新闻 会员 周边 捐助

请高手过来,用c# httpwebrequest模拟登录 北方网,高分相送

0
悬赏园豆:100 [已解决问题] 解决于 2009-12-29 13:51

博园不知道有高手能用httpwebrequest模拟登录北方网,网址:https://secure.enorth.cn/user/login

我研究了很久都未能成功,所以请高手帮忙,如有能解决的,高分相送,感激不尽!

问题补充: 请问楼上朋友,你测试成功了没有?大体我也知道啊,但就是没有成功而已,如果成功了,请麻烦把代码弄出来学习学习,你提供的资料我已全看了,但还是没有成功,不知道是不是那个图片按钮.x,.y动态变造成的不成功,我都赋值为0
IT诗人的主页 IT诗人 | 初学一级 | 园豆:90
提问于:2009-12-24 17:32
< >
分享
最佳答案
0

你看一下他的http头如下:

https://secure.enorth.cn/user/login;jsessionid=D41573233B235D660E59BDE2F38ACA56

POST /user/login;jsessionid=D41573233B235D660E59BDE2F38ACA56 HTTP/1.1
Host: secure.enorth.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 4.0.20506)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://secure.enorth.cn/user/login
Cookie: JSESSIONID=D41573233B235D660E59BDE2F38ACA56
Content-Type: application/x-www-form-urlencoded
Content-Length: 218
username=username&password=22222&rememberMe=true&lt=_cBC494B2F-BB64-00D1-EFD6-7B72A32AB182_k94CF2E81-65F0-979D-B3F1-EEA2E57FB111&_eventId=submit&submit_chgByZs.x=36&submit_chgByZs.y=18&submit_chgByZs=%E7%99%BB%E5%BD%95

 

请求头照着写应该就没有问题了

 

然后呢得到set-cookie如下代码


HttpWebResponse rep
= (HttpWebResponse)web.GetResponse();
// 从响应头中获取验证的cookie信息
string setck = rep.Headers["Set-Cookie"];

if (setck!=null&&setck.Trim() != "")
{
string[] cks = setck.Split(new string[] { ";", "/," }, StringSplitOptions.RemoveEmptyEntries);
foreach (string ck in cks)
{
int aa = ck.IndexOf("=");
string name = ck.Substring(0, aa).Trim();
string cValue = ck.Substring(aa + 1).Trim();
if (name.ToLower() != "expires" && name.ToLower() != "path")
{
MyCookie[] my
= LiCookie.ToArray();
for (int i = 0; i < my.Length; i++)
{
if (my[i].name == name)
{
LiCookie.Remove(my[i]);
}
}
LiCookie.Add(
new MyCookie(name, cValue));
}

}
家下来呢,就是叫得到的cookie 同原来的比较更新,就是登陆的后的cookie。在利用这些信息区访问其他的页面。

 

没时间跟你写了,这样做没错的,可可

部分可以参考:http://www.cnblogs.com/lulu/archive/2009/11/07/1597971.html

收获园豆:100
LittlePeng | 老鸟四级 |园豆:3445 | 2009-12-26 11:20
恩,哦,发现一个问题就是啊,他还有用session验证的,就是:jsessionid=D41573233B235D660E59BDE2F38ACA56 这个东东了,这个需要你先用webrequest访问login页面,先得到这个session在客户端的id啊,接着再做post,应该没有问题的,搞定了就说一下哈:),我是想只要没有验证码之类的东西,都没有问题的:), 不行的告一声,有空我来做一下,现在要考试没时间研究
LittlePeng | 园豆:3445 (老鸟四级) | 2009-12-29 21:46
不对,https呢,没搞过,不知道是不是一样的啊???
LittlePeng | 园豆:3445 (老鸟四级) | 2009-12-29 21:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册