C# webbrowser用下面的代码可以加长cookie的生命周期吗?

事理 2010-09-09 12:32:18
我登陆的网站cookie的生命周期只有十几分钟,现在要把它设置为2小时,不知道下面的代码可不可以做到,请高手指点一下。来者又分。
CookieContainer myCookieContainer = null;

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (myCookieContainer == null)
{
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.Expires = DateTime.Now.AddHours(2);
ck.Domain = "";
myCookieContainer.Add(ck);
}
}
else
{
string cookieStr = "";
CookieCollection cc = myCookieContainer.GetCookies(new Uri(""));
for (int i = 0; i < cc.Count; i++)
{
Cookie cookie = cc[i];
cookieStr += cookie.Name + "=" + cookie.Value + ";";
}
cookieStr = cookieStr.TrimEnd(new char[] { ';' });
webBrowser1.Document.Cookie = cookieStr;
}
第一次登陆后,在加载完成后,重新登陆一次,这样cookie的时间有我设置的2小时了吗?还有 ck.Domain = "";这个要怎么设置呢?空空的好像不行啊?


}
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-09
  • 打赏
  • 举报
回复
你是否可以换个思路,把cookie你认为关键的记录下来,然后使用的时候,重新设置呢

设置方法:
http://www.cnblogs.com/leeairw/archive/2010/05/26/1744602.html
事理 2010-09-09
  • 打赏
  • 举报
回复
其实是我访问某个网站,当时间久了,webbrowser会出现空空的页面,我估计是cookie过期了或者是缓存过期才会这样,原先发了一贴也没搞定。看来是个难题啊
捷哥1999 2010-09-09
  • 打赏
  • 举报
回复
cookie的实效时间,能够设置的吗?
Ny-6000 2010-09-09
  • 打赏
  • 举报
回复
除程序设置,你IIs中设置的超时时间,似乎也会影响到的.

事理 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
你是否可以换个思路,把cookie你认为关键的记录下来,然后使用的时候,重新设置呢

设置方法:
http://www.cnblogs.com/leeairw/archive/2010/05/26/1744602.html
[/Quote]

这个好像不能设置时间啊。



[Quote=引用 3 楼 gongsun 的回复:]
你可以使用 ms提供的这个 票证 FormsAuthenticationTicket 很方便。
DateTime.Now.AddMinutes(30) //30分钟。
DateTime.Now.AddHours(2)//2小时


C# code

string userData = 你的用户名 + "," + 用户角色 + "," + 用户所属机构 + "," + 叉叉叉状态+",……
[/Quote]

这个是网页的吧,怎么改成winform的呢?
龍月 2010-09-09
  • 打赏
  • 举报
回复
可以改COOKIE的
js 可以改把
龍月 2010-09-09
  • 打赏
  • 举报
回复
可以改COOKIE的
js 可以改把
gongsun 2010-09-09
  • 打赏
  • 举报
回复
你可以使用 ms提供的这个 票证 FormsAuthenticationTicket 很方便。
DateTime.Now.AddMinutes(30) //30分钟。
DateTime.Now.AddHours(2)//2小时


string userData = 你的用户名 + "," + 用户角色 + "," + 用户所属机构 + "," + 叉叉叉状态+","+等等;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, response.AccountAbbr, DateTime.Now, DateTime.Now.AddMinutes(30),true, userData);
string encryptedTicket = FormsAuthentication.Encrypt(ticket); //加密
HttpCookie authCookie =new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);

Response.Cookies.Add(authCookie);

Love_Air523824 2010-09-09
  • 打赏
  • 举报
回复
每天一贴

111,119

社区成员

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

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

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