关于自动登录

vachul 2010-09-14 08:36:33
本人想用winform实现自动登录,但是不知道怎么提交我的信息(用户名和密码),是不是提交了我的信息之后,服务就会返回一个cookie的?在线等...
...全文
179 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
deyygywxf 2010-09-14
  • 打赏
  • 举报
回复
第一次登录时 可以把用户名和密码存在注册表里,下次登录从注册表里面取用户名和密码。
nigerenz 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaoyasheng 的回复:]
每次成功登陆后可以将当前的信息保存在xml文件中
[/Quote]

顶,
ZengHD 2010-09-14
  • 打赏
  • 举报
回复
1.request.UserAgent
可以理解为模拟游览器提交数据

2.byte[] loginDataBytes = Encoding.ASCII.GetBytes(postData);
这句里面的不要用postData,用username和password代替

"username=XXXX&password=yyyy"
zhpfaff 2010-09-14
  • 打赏
  • 举报
回复
可以通过HttpWebRequest访问站点,HttpWebResponse可以读取cookie,


string PostData = "uNick="+uNick+"&uPwd="+uPwd;
byte[] data = encoding.GetBytes(PostData);
string strUrl = "xxx.xxx.xxx/xxx.xxx";

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
try{
myRequest.Referer = "xxx.xxx.xxx";
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
string myCookie = myResponse.Headers.Get("Set-Cookie");
StreamReader sr = new StreamReader(myResponse.GetResponseStream(),System.Text.Encoding.GetEncoding("gb2312"));
string myText = sr.ReadToEnd(); //---服务端返回的页面信息
sr.Close();
myResponse.Close();

}
catch (Exception ex)
{

}

vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wpf363093940 的回复:]
唉,人家要的是form程序,不是我web程序。
[/Quote]
呵呵...那没办法!
vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zenghd 的回复:]
C# code

CookieContainer MyCookieContainer = new CookieContainer();

public void POST(string url, string postData, string method)
{
HttpWebRequest request = (……
[/Quote]


两个问题
1.request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727; CIBA)";
这句啥意思?
2.byte[] loginDataBytes = Encoding.ASCII.GetBytes(postData);
这句里面的不要用postData,用username和password代替

要是成功了,分全给你!
懦芞 2010-09-14
  • 打赏
  • 举报
回复
唉,人家要的是form程序,不是我web程序。
ZengHD 2010-09-14
  • 打赏
  • 举报
回复

CookieContainer MyCookieContainer = new CookieContainer();

public void POST(string url, string postData, string method)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method;
request.Timeout = 1000000;
request.KeepAlive = true;
request.AllowAutoRedirect = true;

request.Accept = "*/*";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727; CIBA)";

request.CookieContainer = MyCookieContainer;

request.ContentType = "application/x-www-form-urlencoded";

HttpWebResponse webresponse = null;
try
{
if (postData.Length > 0)
{
byte[] loginDataBytes = Encoding.ASCII.GetBytes(postData);
request.ContentLength = loginDataBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(loginDataBytes, 0, loginDataBytes.Length);
stream.Close();
}
webresponse = request.GetResponse() as HttpWebResponse;
if (webresponse != null)
{

}
}
catch
{
}
finally
{
if (webresponse != null)
{
webresponse.Close();
}

if (request != null)
{
request.Abort();
}
}

return;
}
vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zenghd 的回复:]
离了吗?你自己的问题都没描述清楚
[/Quote]
...................
...................
...................
vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vachul 的回复:]
我是要在winform的代码上实现用户信息的提交啊,给点有用的代码吧...你们怎么都离题了?
[/Quote]
那我现在想问的问题,有没有说清楚了?
  • 打赏
  • 举报
回复
方法很多、
ZengHD 2010-09-14
  • 打赏
  • 举报
回复
离了吗?你自己的问题都没描述清楚
vachul 2010-09-14
  • 打赏
  • 举报
回复
我是要在winform的代码上实现用户信息的提交啊,给点有用的代码吧...你们怎么都离题了?
xiaoyasheng 2010-09-14
  • 打赏
  • 举报
回复
每次成功登陆后可以将当前的信息保存在xml文件中
ysz89757 2010-09-14
  • 打赏
  • 举报
回复
学习了
yudeli 2010-09-14
  • 打赏
  • 举报
回复
第一次登录时 可以把用户名和密码存在注册表里,下次登录从注册表里面取用户名和密码。
vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhpfaff 的回复:]
可以通过HttpWebRequest访问站点,HttpWebResponse可以读取cookie,


string PostData = "uNick="+uNick+"&uPwd="+uPwd;
byte[] data = encoding.GetBytes(PostData);
string strUrl = "xxx.xxx.xxx/xxx.xxx";

HttpWe……
[/Quote]

马上要完成了,差一个内容,就是你的“gb2312”是啥意思啊???
vachul 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhpfaff 的回复:]
可以通过HttpWebRequest访问站点,HttpWebResponse可以读取cookie,


string PostData = "uNick="+uNick+"&uPwd="+uPwd;
byte[] data = encoding.GetBytes(PostData);
string strUrl = "xxx.xxx.xxx/xxx.xxx";

HttpWe……
[/Quote]

你的这个myRequest.Referer = "xxx.xxx.xxx";
里面的网址跟上面那个string strUrl = "xxx.xxx.xxx/xxx.xxx";
有什么区别啊?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧