提供一个.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的网站!
相关视频
相关阅读 vs.netIDE报"以下文件中的行尾不一致,要将行尾标准化吗?"的解决ie6下面asp.net mvc3 部署应用程序.NET 3.5 安装错误的四个原因及解决方法支持无限制历史记录的Paint.NET 3.5.8 Final,你用了吗?.NET Framework环境安装错误怎么办?JVM和.NET CLR和哪个会被彻底击败在asp.net mvc中实现右键菜单和简单的分页教程VB.NET如何得到调用当前过程的方法名称和类名称
热门文章 没有查询到任何记录。
最新文章
什么是.NET中的TDD?ASP.NET AJAX入门简介
WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用
人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题
查看所有0条评论>>