码迷,mamicode.com
首页 > Windows程序 > 详细

HttpWebRequest模拟c#网站登录

时间:2015-02-14 12:12:58      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

模拟登录asp.net开发的网站。POST数据相对来说比较简单。如何触发事件?一个页面可能有多个post按钮,如修改、删除,按钮,页面提交后,会进入对应的事件中。通过什么机制触发事件一直没有找到满意的答案。

之前在博问中寻求过帮助,也许是没有彻底理解热心园友的回复,问题一直没有解决,但依然感谢走过、路过的朋友。

博问链接:1、c#模拟网页登陆   2、 HttpWebRequest 模拟登录

知道看到了这篇博文才实现了c#网站的登录。

对于asp.net开发的网站,需要将__VIEWSTATE__EVENTVALIDATION作为数据写入。数据是key、value格式的。

e.g.  name=admin&password=123&__VIEWSTATE=&__EVENTVALIDATION=.

数据需要UrlEncode编码处理

数据分为三部分。

第一部分是表单数据,参数名称获取在上两篇博问中出现了很多次。

第二部分是固定的__VIEWSTATE__EVENTVALIDATION

这两个数据可以从源码中取得。我比较倾向使用正则来获取。

获取__VIEWSTATE

Regex reg = new Regex("id=\"__VIEWSTATE\" value=\"((?<v>.*?)\")");

获取__EVENTVALIDATION

Regex("id=\"__EVENTVALIDATION\" value=\"((?<v>.*?)\")");

触发事件

传递数据时把控件的name加上去。对button测试成功过,但对于image没有成功。

name=admin&password=123&__VIEWSTATE=&__EVENTVALIDATION=&login=.

login是提交按钮的name。

HttpWebRequest模拟c#网站登录

标签:

原文地址:http://www.cnblogs.com/lucika/p/4290698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!