首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

在Silverlight应用程序中操作Cookie

        概述

        很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下。为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage.Document对象。

        在使用HtmlPage.Document之前,请先添加System.Windows.Browser命名空间。本文介绍了如何在Silverlight应用程序中操作Cookie,并在最后给出了一个操作Cookie的公用类,大家可以直接在自己的应用程序中使用。

        写入Cookie

        在Silverlight 应用程序中,我们可以通过HtmlPage.Document.SetProperty方法来设置Cookie或者使用HtmlPage.Document对象的Cookies属性(后面会讲到),如下代码所示:

         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:

TerryLee_0146

 

        读取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];
                    }
                }
            }
        }

[1] [2] 下一页

【责编:Stephen】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航