有关webbrowser使用cookie自动登录的问题

xieye 2010-10-14 02:53:06
我想做一个可以切换浏览多个论坛的工具,同时可以自动登录。
具体想法是使用tabcontrol,每个tab下面放一个webbrowser,在第一次登录后保存cookie到本地目录;在下次打开时直接找到这个目录里的cookie,自动登录该论坛。

登录后读取cookie并写入文本:
string cookieStr1 = webBrowser1.Document.Cookie;
StreamWriter swtest = new StreamWriter("test1.txt");
swtest.Write(cookieStr);
swtest.Close();

可以读取cookie并保存到当前test1.txt;但是如何在webbrowser打开时设置这个cookie呢?

找了一些资料,这样写了代码:

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);

StreamReader swtest = new StreamReader("test1.txt");
string cookieStr = swtest.ReadToEnd();
swtest.Close();

string[] cookstr = cookieStr.Split(';');
Cookie ck = new Cookie("TEST", cookieStr, null, url);
InternetSetCookie(url, "TEST", ck.Value);

webBrowser1.Navigate(url);

其中url是网址。

这样做的话总是没法加上cookie的,每次都是登录界面,请问应该怎么改?

谢谢!~
...全文
321 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieye 2010-10-18
  • 打赏
  • 举报
回复
算了,没人回答了,结贴了。。。
xieye 2010-10-15
  • 打赏
  • 举报
回复
这个方法我也找到过,可是还是不知道具体怎么写代码,汗。。。
wuyq11 2010-10-14
  • 打赏
  • 举报
回复
CookieContainer myCookieContainer = new CookieContainer();

string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split(';');
foreach (string str in cookstr)
{
string[] cookieNameValue = str.Split('=');
Cookie ck = new Cookie(cookieNameValue[0].Trim ().ToString(), cookieNameValue[1].Trim ().ToString());
ck.Domain = "";
myCookieContainer.Add(ck);
}
WebClient设置cookie
WebClient wc = new WebClient();
wc.Headers.Add("Cookie", "PHPSESSID=" + cookie + ";");
byte[] re = wc.UploadData("", new byte[0]);
System.Text.UTF8Encoding converter = new System.Text.UTF8Encoding();

webbrower
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
public WebBrowserControl(String path)
{
InternetSetCookie(url, "", Globals.ThisDocument.sessionID);
webBrowser.Navigate(url);
}
}


xieye 2010-10-14
  • 打赏
  • 举报
回复
不好意思,只能给100分,呵呵,有需要的话可以开贴再给分哈~~

110,566

社区成员

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

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

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