如何使用C#实现asp.net网站的自动登录?

HttpWebRequest 发送 POST 请求到一个网页服务器实现自动用户登录

假如某个页面有个如下的表单(Form):
<form name="form1" action="http:www.breakn.com/login.asp" method="post">  
<input type="text" name="userid" value="">  
<input type="password" name="password" value="">  
</form> 
从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。
其中POST的数据格式为:
表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……
要注意的是“值”必须是经过HTMLEncode的,即不能包含“<>=&”这些符号。

本例子要提交的数据应该是:
userid=value1&password=value2
string strId = "guest";  
string strPassword= "123456";  
 
ASCIIEncoding encoding=new ASCIIEncoding();  
string postData="userid="+strId;  
postData += ("&password="+strPassword);  
 
byte[] data = encoding.GetBytes(postData);  
 
// Prepare web request...  
HttpWebRequest myRequest =  
(HttpWebRequest)WebRequest.Create("http:www.here.com/login.asp");  
 
myRequest.Method = "POST";  
myRequest.ContentType="application/x-www-form-urlencoded";  
myRequest.ContentLength = data.Length;  
Stream newStream=myRequest.GetRequestStream();  
 
// Send the data.  
newStream.Write(data,0,data.Length);  
newStream.Close();  
 
// Get response  
HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();  
StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);  
string content = reader.ReadToEnd();  
Console.WriteLine(content);  

posted @   94cool  阅读(526)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示