SILVERLIGHT 操作COOLKIE

silverlight中cookie的使用 silverlight中cookie的使用和aspx页面使用cookie的对比 立即下载

http://www.cnblogs.com/Terrylee/archive/2008/07/27/tips-set-cookies-in-silverlight-application.html

概述

很多朋友来信问如何在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];
            }
        }
    }
}

如下图所示:

TerryLee_0147

删除Cookie

删除Cookie非常简单,清空Cookie的值并设置它的过期时间,如下代码所示:

void btnDelete_Click(object sender, RoutedEventArgs e)
{
    DateTime expir = DateTime.UtcNow - TimeSpan.FromDays(1);
    string cookie = String.Format("{0}=;expires={1}",
        this.txtKey.Text, expir.ToString("R"));
    HtmlPage.Document.SetProperty("cookie", 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, null, null, false);
    }

    public static void SetCookie(String key, String value, TimeSpan expires)
    {
        SetCookie(key, value, expires, null, null, false);
    }

    public static void SetCookie(String key, String value, 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}", key, value));
    }
}

总结

本文介绍了在Silverlight应用程序中如何操作Cookie,希望对大家有所帮助。



C#记住上次登录用户名 立即下载

相关推荐

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

技巧:在Silverlight应用程序中操作Cookie

本文首发于博客园,作者为TerryLee,原文地址:技巧:在Silverlight应用程序中操作Cookie 概述 很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下。为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage.Document对象。 在使用HtmlPage.Document...

weixin_34401479的博客 153

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Silverlight的cookie操作

本文让我们一起来学习如何利用Silverlight的HtmlPage.Document对象,实现在Silverlight操作Cookies.     首先创建一个新的Silverlight应用程序,如图:      为使用HtmlPage.Document对象,我们要引入命名空间  using System.Windows.Browser; //引入此空间以便于使用Cookie操作

最数据的专栏 1149

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 347

阅读WPF揭秘前两章探索Silverlight运行的基本原理和RIA工作流程的密码(二)

2.8  编译:将XAML与过程式代码混合使用 WPF允许用任何一种.NET语言完全以过程式代码编写应用程序。另外,一些简单的应用程序可以完全写在XAML中,这多亏了在第9章中提到的数据绑定特性,以及在下一章中即将介绍的触发器,还要感谢一个事实——那就是松散XAML页面可以在IE浏览器中呈现。尽管如此,大多数WPF应用程序是XAML与过程式代码的混合体。本节将介绍两种XAML和代码混合的方式,然后...

weixin_33985679的博客 315

C++控制台实现简单的注册登录

C++控制台实现简单的注册登录 #include<iostream> #include<string> #include <vector> #include <conio.h> void Display();//调用display显示switch()界面 void Register();//注册 void Enter();//登录 using nam...

乔路非 2万+

Silverlight读取和设置Cookie

源码,直接复制使用就OK using System; using System.Windows.Browser; using System.Text; using System.Linq;   public class CookiesUtils     {         ///         /// 设置持久时间长的Cookie         ///

℡メ㏑╭ァ小凯 1026

Mac用户福音:三步搞定PyMol开源版,告别许可证弹窗(附Homebrew/MacPorts安装指南)

本文为Mac用户提供三步安装PyMol开源版的详细指南,帮助科研人员告别许可证弹窗烦恼。通过Homebrew或MacPorts包管理器安装开源核心,并与商业版图形界面整合,实现无干扰的分子可视化研究体验。特别适合MacOS用户快速部署PyMol进行结构生物学分析。

weixin_28743405的博客 196

LibTV保姆级教程:从提示词到AI视频成片全流程

AI视频生成技术正以前所未有的速度重塑内容创作行业,过去需要编剧、摄影、剪辑等多角色协作的复杂流程,如今借助AI绘画与图生视频等核心能力,一个人也能完成高质量短视频制作。理解提示词工程是掌控AI视频创作的关键,通过精准描述主体、环境、光线与运镜,可以显著提升生成画面的稳定性与专业度。而图生视频技术则让静态分镜自然流动,有效解决角色一致性与场景漂移等常见问题。这类工具已广泛应用于产品宣传、剧情短片、社交媒体内容生产等场景,大幅降低了视频创作门槛。本文以LibTV一站式AI视频创作平台为例,从核心概念到完整实操

weixin_29046035的博客 964

silverlight保存登录信息

本文介绍cookie方法保存用户信息。 首先第一次登录时,在登录完成函数server_loginCompleted里添加 DateTime expries=DateTime.UtcNow+TimeSpan.FromDays(1); //设置保存有效天数  string cookie=string.Format("{0}={1};expries={2}",textBox1.Text,txtPa

记事本 1059

【A2DP】规范精讲[1]: 深入解析A2DP协议的核心架构

在蓝牙技术发展的早期阶段,音频传输主要通过SCO(同步面向连接)链路实现,这种设计主要针对语音通信,音质有限且功能单一。随着人们对无线高质量音频需求的增长,​​Advanced Audio Distribution Profile (A2DP)​​ 应运而生,成为蓝牙音频传输的技术基石。

byte轻骑兵的技术小窝 1万+

Silverlight -Cookie存储登录信息

创建Cookie  DateTime expries=DateTime.UtcNow+TimeSpan.FromDays(15); //设置保存有效天数  string cookie=string.Format("{0}={1};expries={2}",txtId1.Text,txtPassword1.Password,expries);  HtmlPage.Document.SetPrope

清涩清酒 402

社区版 ABAP MCP 能不能读取 SAP S/4HANA 公有云开发对象,我的判断是能试,但不能当成已被 SAP 背书的标准通道

文章摘要:当前存在多个社区项目(如mcp-abap-adt、mcp-abap-abap-adt-api等)通过包装ABAP ADT能力为MCP Server,使AI开发工具能读取ABAP对象。这些项目技术上依赖ADT HTTP API或SAP官方ADT language server,但针对SAP S/4HANA Cloud Public Edition的完整适配仍存在挑战。SAP官方已通过VS Code扩展提供ADT MCP能力,而社区方案在云环境下需遵循ABAP Cloud的严格限制,仅能访问已授权的开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 87

Qt版Dalsa线扫相机的采集Demo

Qt Dalsa

追赶时代的博客 605

Silverlight 处理cookie

publicstaticvoidSetCookie(Stringkey,Stringvalue,TimeSpan?expires){StringBuildercookie=newStringBuilder();cookie.Append(String.Concat(key,"=",value));if(expires.Ha...

weixin_30361753的博客 150

Vue3 - Element Plus 组件库 Tabs 标签页右侧区域插入按钮,<el-tabs> / <el-tab-pane> 选项卡组件右侧自定义插槽内容教程(右边区域添加自定义按钮功能区)

vue3,elementplus,tabs选项卡如何在插槽按钮,tabs标签页组件怎么自定义右侧内容,vue3elementplustabs组件右侧插槽按钮,element-plus在el-tabs组件的最右侧添加按钮,如何在选项卡右边加入按钮搜索框等内容,哪个属性能在tab选项卡右侧插入自定义按钮,在el-tabs组件最右侧添加按钮,vue3el-tabs组件怎么自定义右侧插槽内容,Tabs标签页右侧自定义插槽,ElementPlusTab右边加按钮,el-tabs组件自定义右侧按钮,在E

🏆 前端领域优质创作者 7016

SilverLight学习笔记--Silverlight的cookie操作

   本文让我们一起来学习如何利用Silverlight的HtmlPage.Document对象,实现在Silverlight操作Cookies.     首先创建一个新的Silverlight应用程序,如图:     为使用HtmlPage.Document对象,我们要引入命名空间  using System.Windows.Browser; //引入此空间以便于使用Cookie操作 ...

weixin_34117522的博客 164

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

自动登录、记住我(保存登陆状态)实现

自动登录、记住我(保存登陆状态)实现:保存在客户端不能用session,可以用cookies保存 实现方式:第一种方法:可以把SessionId(GUID)放到cookies中,但 这样为了让用户下次访问我们网站时,知道这 个sessionId对应的是哪一个用户,我们还要在 数据库中建张表。表字段:主键,UserIdSessionId时间 缺点:不能在两台机器上同时保存 第二种...

weixin_30561177的博客 559

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

在Silverlight应用程序中操作Cookie

http://www.cnblogs.com/Terrylee/archive/2008/07/27/tips-set-cookies-in-silverlight-application.html 概述 很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下。为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage...

weixin_34233421的博客 156

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

修改silverlight的默认初始屏幕

msdn: http://msdn.microsoft.com/zh-cn/library/cc838130(v=vs.95).aspx 转载于:https://www.cnblogs.com/liancs/archive/2012/04/19/3879279.html

a6265655的专栏 166

登陆时不显示上一次登陆的用户名

系统在每次登陆的时候会显示上一次登陆的用户的用户名,入侵考很可能会根据被显示出来的用户名获取登陆密码并且非法进入系统。此项的手工修复方法如下:运行注册表编辑器regedit.exe,修改键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system中的值don...

weixin_34199405的博客 911

Silverlight读取与设置Cookies

Silverlight读取与设置Cookies 设置Cookie DateTime expire = DateTime.UtcNow + TimeSpan.FromDays(30); string cookie = string.Formate("{0}={1},expires={2}",key,value,expire) H...

weixin_30383279的博客 115
上一篇: C# 格式化字符串几种方式总结 String.Format
下一篇: 委托事件 简写 C#
longlong821
博客等级 码龄16年 13粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值