热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#如何创建、读取cookie

删除CookieResponse.Cookies[Cookiename].ExpiresDateTime.Now.AddDays(-1);用C#如何创建、读取cookie用C
删除COOKIE

Response.COOKIEs["COOKIEname"].Expires = DateTime.Now.AddDays(-1);




用C#如何创建、读取COOKIE

用C#如何创建、读取COOKIE:

一、创建COOKIE,并写入数据:

c COOKIE 详细用 - super1983 - 小三的博客   //创建、写入COOKIE

c COOKIE 详细用 - super1983 - 小三的博客    HttpCOOKIE COOKIE = Request.COOKIEs["MWS_User"];

c COOKIE 详细用 - super1983 - 小三的博客    if (COOKIE == null)

c COOKIE 详细用 - super1983 - 小三的博客    {

c COOKIE 详细用 - super1983 - 小三的博客          COOKIE = new HttpCOOKIE("MWS_User");

c COOKIE 详细用 - super1983 - 小三的博客    }

c COOKIE 详细用 - super1983 - 小三的博客    COOKIE.Values.Set("UserID", strUserID);

c COOKIE 详细用 - super1983 - 小三的博客    Response.SetCOOKIE(COOKIE);

 

二、读取COOKIE:

c COOKIE 详细用 - super1983 - 小三的博客HttpCOOKIE COOKIE = Request.COOKIEs["MWS_User"];

c COOKIE 详细用 - super1983 - 小三的博客if (COOKIE != null && COOKIE["UserID"].ToString() != "")

c COOKIE 详细用 - super1983 - 小三的博客{

c COOKIE 详细用 - super1983 - 小三的博客      Response.Write("COOKIE=" + COOKIE["UserID"].ToString());

c COOKIE 详细用 - super1983 - 小三的博客 }

 

1、COOKIE存放的目录

COOKIE是存放在客户端的东东,放在“TemporaryInternetFiles”目录,所以说存在安全性的问题。大伙可通过以下方式找到具体位置:打开控制面板→Internet选项→常规→Internet临时文件→设置→即可看到“当前位置”,→点击“查看文件”将直接打开该文件夹,你也可以点击“移动文件夹”变更它所在的位置。

2、COOKIE的有效期

从上图我们可以清楚的看到每个COOKIE文档的“截止期”(即为有效期)。在有效期内,当登录计算机的用户Administrator再次访问172.meibu.com时,那么IE就会在请求页面的同时,连同上述的名称为“COOKIE:administrator@172.meibu.com”的COOKIE文档内容一起发送给服务器。

若该文档包含多个COOKIE的值时,截止期则以最后的失效期为准。

3、COOKIE的类型

这里我们按有效期来分,分为两种:

a)即时型

指的是关闭浏览器(所有浏览172.meibu.com的IE)后,COOKIE便失效,此类COOKIE不会在“TemporaryInternetFiles”目录出现。其实它也有截止期的,为“0001-01-01”

b)持久型

就是已指定具体“截止期”的,能够在“TemporaryInternetFiles”目录里面找到的COOKIE

4、COOKIE的内容

双击打开“COOKIE:administrator@172.meibu.com”,我们看到以下内容,如下图(http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm06.jpg):

上图中,“■”是换行符,你若是要打破什么锅来问我到底是怎么知道的话。我倒是会很乐意的告诉你:这就是经验!偶从学习C#那刻起,就拿第一个Windows程序——记事本来开刀,保存文档时得来的经验。

所以服务器读出来的格式如下图(http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm07.jpg):

5、在ASP.NET页面发放COOKIE

发送上述COOKIE的.cs代码为:

System.Web.HttpCOOKIE ck=new HttpCOOKIE("ckValue0");

ck["Author"]="CityHunter";

ck.Expires=System.DateTime.Now.AddMinutes(10);//若不指定,则为即时型COOKIE

//ck.Path="/FormTest/ManageSys";//设置COOKIE的虚拟路径,注意一定要以“/”开头,否则为无效COOKIE;请大家自行看一下它与在客房端的COOKIE文档“名称”与“Internet地址”的关系

Response.COOKIEs.Add(ck);

ck=newHttpCOOKIE("ckValue1");//重新新建一个名为ckValue1的COOKIE

ck.Expires=System.DateTime.Now.AddMinutes(20);//即刻起20分钟后失效

ck["E_Mail"]="mailto:cityhunter172@126.com%22;//设置ckValue1中的E_Mail值

ck["PersonalWeb"]="172.meibu.com";

Response.COOKIEs.Add(ck);//添加此COOKIE

6、取回已发放COOKIE的值

Response.Write(Request.COOKIEs["ckValue0"]["Author"]+"
");//用不着说明了吧

Response.Write(Request.COOKIEs["ckValue1"]["E_Mail"]+"
");

Response.Write(Request.COOKIEs["ckValue1"]["PersonalWeb"]);

好久没有出作业啦(何出此言?),这第三篇呀,可是花了偶两个星期的业余时间调试、总结、撰写哪,都说时光贵如金,不知我花的这些时间能换来多少银子?换银子,我看是没指望啦,能得到阁下的一句评论,偶也满足了。记住,你的评论就是偶继续写下去的动力。

作业:给COOKIE赋于以下值,怎样得到它的正确值

ck["str1"]="2222";

ck["str"]="str0=11111&str1=223";

可以肯定的是Request.COOKIEs["ckValue1"]["str"]得不到“str0=11111&str1=223”这个字串,大家不妨试一下Request.COOKIEs["ckValue1"]["str1"]会得到意想不到的字串哟。

提示:使用Server.UrlEncode()与Server.UrlDecode()

十三、发放永久性的验证COOKIE

终于……终于……最后一个章节,蓦然回首,洋洋洒洒十二章。没想到年少时写不完作文的偶,居然也能编出几千余字的文章来呀,不得不佩服偶自己呀!再回首,一大片晕倒的人……。永远到底有多远?永久究竟是多久?只有天知道。

大家登录CSDN的时候是否留意到一个“2周内不用再登录”的复选框,它又是怎么做到的呢?大家是否曾遇到过这样的困惑:在执行System.Web.Security.FormsAuthentication.SetAuthCOOKIE时明明已指定createPersistentCOOKIE为true为何关闭浏览器仍不能直接访问网站?下面我们就这个问题给大家解释一下,且介绍如何手工创建身份验证票并加入COOKIE中。

System.Web.Security.FormsAuthenticationTicket tk=newSystem.Web.Security.FormsAuthenticationTicket(

1,//指定版本号:可随意指定

"Admin",//登录用户名:对应Web.config中的users属性

System.DateTime.Now,//发布时间

System.DateTime.Now.AddYears(100),//失效时间:100年以后,够永够久了吧

false,//是否为持久COOKIE:尚未发现有何用,至少目前偶还不知,下面会有说明

"测试用户数据"//用户数据:可用((System.Web.Security.FormsIdentity)User.Identity).Ticket.UserData获取

);

stringstr=System.Web.Security.FormsAuthentication.Encrypt(tk);//加密身份验票

//声明一个COOKIE,名称为Web.config中的name属性,对应的值为身份验票加密后的字串

System.Web.HttpCOOKIEck=newHttpCOOKIE(System.Web.Security.FormsAuthentication.FormsCOOKIEName,str);

//指定COOKIE为Web.config中path属性,不指定则默认为“/”

ck.Path=System.Web.Security.FormsAuthentication.FormsCOOKIEPath;

//此句非常重要,少了的话,就算此COOKIE在身份验票中指定为持久性COOKIE,也只是即时型的COOKIE关闭浏览器后就失效;因此上面我说:我是真的还不知在身份验票中指定为持久性COOKIE有何用。

ck.Expires=System.DateTime.Now.AddYears(100);

Response.COOKIEs.Add(ck);//添加至客房端


推荐阅读
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
徐筱毅信贤季善
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有