voID btnSet_Click(object sender,RoutedEventArgs e){ DateTime expir = DateTime.UtcNow + TimeSpan.FromDays(7); String cookie = String.Format("{0}={1};expires={2}",this.txtKey.Text,this.txtValue.Text,expir.ToString("R")); HTMLPage.document.SetProperty("cookie",cookie);}这里设置cookie的过期时间为一周,除了设置过期时间外还可以设置domain、path等,后面的帮助类中你将看到这一点。 如使用下面的界面写入cookie: 读取cookie 我们可以通过HTMLPage.document.GetProperty方法来获取所有cookie,另外在HTMLdocument中定义了cookies属性,已经为我们封装好了GetProperty方法,可以直接使用,它的定义如下代码所示:
public sealed class HTMLdocument : HTMLObject{ public string cookies { get{ HTMLPage.VerifyThread(); String property = this.GetProperty("cookie") as String; if (property != null) { return property; } return String.Empty; } set{ HTMLPage.VerifyThread(); String str = value; if (String.IsNullOrEmpty(str)) { str = string.Empty; } this.SetProperty("cookie",str); } }}如使用下面这段代码来获取一个指定Key的cookie值:
voID btnRetrIEve_Click(object sender,RoutedEventArgs e){ String[] cookies = HTMLPage.document.cookies.Split(';'); foreach (String cookie in cookies) { String[] keyvalues = cookie.Split('='); if (keyvalues.Length == 2) { if (keyvalues[0].Trim() == this.txtKey.Text.Trim()) { this.txtValue.Text = keyvalues[1]; } } }}如下图所示: 删除cookie 删除cookie非常简单,清空cookie的值并设置它的过期时间,如下代码所示:
voID btnDelete_Click(object sender,RoutedEventArgs e){ DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1); string cookie = String.Format("{0}=;expires={1}",cookie);}cookie帮助类 由于在开发中,我们可能会经常用到对于cookie的 *** 作,我在这里总结了一个简单的Silverlight中 *** 作cookie帮助类,大家可以直接在自己的项目中使用,主要有如下几个功能: 1.写入cookie 2.读取cookie 3.删除cookie 4.判断cookie是否存在 当然如果你还有别的需求,可以再进一步完善,完整的代码如下:
public class cookiesUtils{ public static voID setcookie(String key,String value) { setcookie(key,value,null,false); } public static voID setcookie(String key,String value,TimeSpan expires) { setcookie(key,expires,TimeSpan? expires,String path,String domain,bool secure) { StringBuilder 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()); } 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; } 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); } public static bool Exists(String key,String value) { return HTMLPage.document.cookies.Contains(String.Format("{0}={1}",value)); }}总结 本文介绍了在Silverlight应用程序中如何 *** 作cookie,希望对大家有所帮助。 本文示例代码以及cookiesUtils代码下载: 更多Silverlight 2的文章请参考 Silverlight 2 相关文章汇总。 本文首发于 博客园,作者为 TerryLee,原文地址: 技巧:在Silverlight应用程序中 *** 作Cookie 总结
以上是内存溢出为你收集整理的技巧:在Silverlight应用程序中 *** 作Cookie全部内容,希望文章能够帮你解决技巧:在Silverlight应用程序中 *** 作Cookie所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)