快速业务通道

一个.net下通用的Cookie操作类

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

笔者曾经参与一个大型多用户商城的开发,系统用户角色很多,有买家,卖家,代理商,系统管理员 ,普通管理员,超级管理员等,这些用户都涉及到登陆系统,然后建立cookies的问题,由于角色的不同 ,这些用户登陆系统后,所建的cookies都相对独立,而且对一个多用户商城来说,cookies区分域很重要 ,不同的域名要建不同的域。因此笔者在开发的过程中,写了很多次的建cookies,取cookies的代码,不 胜其烦!

既然都是建cookies,那么肯定有共同点,我们何不抽象出来,写一个通用的Cookie操作类呢,下面笔 者就以.net为例,来说明下如何实现这个类吧!

/////以下是建cookies的函数

public void SetCookies(string domain, string type, XieGou.XGMap map)
 {
 HttpCookie cookie = new HttpCookie(type);//定义cookie对象
 DateTime dt = DateTime.Now;//定义时间对象
 TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdn
 cookie.Expires = dt.Add(ts);//添加作用时间
 cookie.Domain = domain;
 for(int i =0 ;i < map.Size() ; i++)
 {
  cookie.Values.Add(map.GetTag(i),map.GetValue(i).ToString());//增加属性
 }
 page.Response.AppendCookie(cookie);//确定写入cookie中
 }

/////以下是取cookies的函数

public string GetCookies(string type, string name)
 {
 if(page.Request.Cookies[type] != null)
 {
  if(page.Request.Cookies[type].Values[name] != null)
  {
  return page.Request.Cookies[type].Values[name].ToString();
  }
  else
  {
  return "0";
  }
 }
 return "0";
 }

下面我们来看下,如何调用这两个函数:

XieGou.XGMap map = new XGMap();  ///这里用到的Map类,可以参考网上资料写一个
 map.Add("shopid",shop.m_id.ToString());  ///添加map对应表
  map.Add("shopname",shop.m_name.ToString());
 func.SetCookies(".shopxg.com","shopxg_namespace",map);

原理其实很简单,先定义一个map类,把要建的cookies名称和值放到map表里,然后统一由SetCookies 来建cookies,这样写的好处,就是可以少写很多代码,特别是需要频繁建cookies的网站!

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号