Silverlight CookiesHelper类

来源:互联网 发布:网络推广方案策划书 编辑:程序博客网 时间:2024/06/07 21:55

public class CookiesHelper

    {
        /// <summary>
        /// 添加Cookie
        /// </summary>
        /// <param name="key">名称</param>
        /// <param name="value">值</param>
        public static void SetCookie(String key, String value)
        {
            SetCookie(key, valuenullnullnullfalse);
        }
        /// <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, value, expires, nullnullfalse);
        }
        /// <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, String value, 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));
        }
    }
原创粉丝点击