欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是建站经验系列之:【提供一个.NET下通用的Cookie操作类】,下面是详细的分享!
提供一个.NET下通用的Cookie操作类
笔者曾经参与一个大型多用户商城的开发,系统用户角色很多,有买家,卖家,代理商,系统管理员,普通管理员,超级管理员等,这些用户都涉及到登陆系统,然后建立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的网站!
上面是笔者的一点拙见,如有问题,欢迎交流。Email : cxl@xiegoo.com .
以上所分享的是关于提供一个.NET下通用的Cookie操作类,下面是编辑为你推荐的有价值的用户互动:
相关问题:asp.net写日志通用类谁给提供一个参考一下?
答:推荐log4net,log4net支持多种方式的日志,而且保存的内容也很详细。 我猜你的意思是想把整条记录保存下来。还是自己写吧。将增、删、改多种才做分开写。 都需要操作或前或后在查询一下主键(或者操作完后直接返回ID),然后直接将数据查询插入... >>详细
相关问题:木有你说的这个选项呀~只有一个选项 (所有文件)
答:Cookies现在经常被大家提到,那么到底什么是Cookies,它有什么作用呢?Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非... >>详细
相关问题:ASP.NET cookie使用问题
答:解答你的问题首先应该明白cookie在.net下的操作方式,简述一下: 原始的cookie设置方法是通过response来进行设置。 Response.Cookies["name"].value="value"; 但是如果我们要设置多个值,那么就要多次重复上述语句。 Response.Cookies["name"].v... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
