public
class CookiesHelper
{
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
public static void SetCookie( String key, String value)
{
SetCookie(key, value, null, false);
}
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
/// <param name="expires">过期时间</param>
public static void SetCookie( String key, String value, TimeSpan expires)
{
SetCookie(key, expires, false);
}
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
/// <param name="expires">过期时间</param>
/// <param name="path">路径</param>
/// <param name="domain">域</param>
/// <param name="secure"></param>
public static void SetCookie( String key, TimeSpan? expires, String path, String domain, bool secure)
{
var cookie = new StringBuilder();
cookie.Append( String.Concat(key, "=", value));
if (expires.HasValue)
{
DateTime expire = DateTime.UtcNow + expires.Value;
cookie.Append( String.Concat( ";expires=", expire.ToString( "R")));
}
if (! String.IsNullOrEmpty(path))
{
cookie.Append( String.Concat( ";path=", path));
}
if (! String.IsNullOrEmpty(domain))
{
cookie.Append( String.Concat( ";domain=", domain));
}
if (secure)
{
cookie.Append( ";secure");
}
HtmlPage.Document.SetProperty( "cookie", cookie.ToString());
}
/// <summary>
/// 获取Cookie的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetCookie( String key)
{
String[] cookies = HtmlPage.Document.Cookies.Split(';');
String result = (from c in cookies
let keyvalues = c.Split('=')
where keyvalues.Length == 2 && keyvalues[0].Trim() == key.Trim()
select keyvalues[1]).FirstOrDefault();
return result;
}
/// <summary>
/// 删除Cookie
/// </summary>
/// <param name="key"></param>
public static void DeleteCookie( String key)
{
DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1);
string cookie = String.Format( "{0}=;expires={1}",
key, expir.ToString( "R"));
HtmlPage.Document.SetProperty( "cookie", cookie);
}
/// <summary>
/// 检测cookie是否存在 成功返回True 否则返回 False
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Exists( String key, String value)
{
return HtmlPage.Document.Cookies.Contains( String.Format( "{0}={1}", key, value)); } }
{
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
public static void SetCookie( String key, String value)
{
SetCookie(key, value, null, false);
}
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
/// <param name="expires">过期时间</param>
public static void SetCookie( String key, String value, TimeSpan expires)
{
SetCookie(key, expires, false);
}
/// <summary>
/// 添加Cookie
/// </summary>
/// <param name="key">名称</param>
/// <param name="value">值</param>
/// <param name="expires">过期时间</param>
/// <param name="path">路径</param>
/// <param name="domain">域</param>
/// <param name="secure"></param>
public static void SetCookie( String key, TimeSpan? expires, String path, String domain, bool secure)
{
var cookie = new StringBuilder();
cookie.Append( String.Concat(key, "=", value));
if (expires.HasValue)
{
DateTime expire = DateTime.UtcNow + expires.Value;
cookie.Append( String.Concat( ";expires=", expire.ToString( "R")));
}
if (! String.IsNullOrEmpty(path))
{
cookie.Append( String.Concat( ";path=", path));
}
if (! String.IsNullOrEmpty(domain))
{
cookie.Append( String.Concat( ";domain=", domain));
}
if (secure)
{
cookie.Append( ";secure");
}
HtmlPage.Document.SetProperty( "cookie", cookie.ToString());
}
/// <summary>
/// 获取Cookie的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetCookie( String key)
{
String[] cookies = HtmlPage.Document.Cookies.Split(';');
String result = (from c in cookies
let keyvalues = c.Split('=')
where keyvalues.Length == 2 && keyvalues[0].Trim() == key.Trim()
select keyvalues[1]).FirstOrDefault();
return result;
}
/// <summary>
/// 删除Cookie
/// </summary>
/// <param name="key"></param>
public static void DeleteCookie( String key)
{
DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1);
string cookie = String.Format( "{0}=;expires={1}",
key, expir.ToString( "R"));
HtmlPage.Document.SetProperty( "cookie", cookie);
}
/// <summary>
/// 检测cookie是否存在 成功返回True 否则返回 False
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Exists( String key, String value)
{
return HtmlPage.Document.Cookies.Contains( String.Format( "{0}={1}", key, value)); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。