我在c#里把值写进IE的cookies值里,设置了时间,但总是失效,过不了一会就过期了,在网上找了一圈也没解决。
代码如下:
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
/// <summary>
/// 设置或获取Ie的密码
/// </summary>
private void setIECookies()
{
//获取旧的
StringBuilder cookie = new StringBuilder(new String(' ', 2048));
int datasize = cookie.Length;
bool b = InternetGetCookie(domain, null, cookie, ref datasize);
//删除旧的
foreach (string fileName in Directory.GetFiles(System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies)))
{
if (fileName.ToLower().IndexOf("www.xxxxxxxx.com") > 0)
{
File.Delete("www.xxxxxxxx.com");
}
}
//生成新的
foreach (string c in cookie.ToString().Split(';'))
{
string[] item = c.Split('=');
string name = item[0];
string value = item[1] + ";expires=Sun,22-Feb-2099 00:00:00 GMT";
InternetSetCookie(domain, name, value);
}
}
代码如下:
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
/// <summary>
/// 设置或获取Ie的密码
/// </summary>
private void setIECookies()
{
//获取旧的
StringBuilder cookie = new StringBuilder(new String(' ', 2048));
int datasize = cookie.Length;
bool b = InternetGetCookie(domain, null, cookie, ref datasize);
//删除旧的
foreach (string fileName in Directory.GetFiles(System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies)))
{
if (fileName.ToLower().IndexOf("www.xxxxxxxx.com") > 0)
{
File.Delete("www.xxxxxxxx.com");
}
}
//生成新的
foreach (string c in cookie.ToString().Split(';'))
{
string[] item = c.Split('=');
string name = item[0];
string value = item[1] + ";expires=Sun,22-Feb-2099 00:00:00 GMT";
InternetSetCookie(domain, name, value);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货