欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在程序中使用Cookie集合(定义/新建/删除)及案例讲解

程序员文章站 2024-03-04 10:42:47
在程序开发中,使用cookie时,很少使用如的写法。习惯写成cookie集合,什么叫做cookie集合,即是说一个cookie,它拥有多个值。下面一系列演示,是怎样创建co...
在程序开发中,使用cookie时,很少使用如的写法。习惯写成cookie集合,什么叫做cookie集合,即是说一个cookie,它拥有多个值。下面一系列演示,是怎样创建cookie集合与使用。
复制代码 代码如下:

insusbiz
using system;
using system.web;
/// <summary>
/// summary description for insusbiz
/// </summary>
public class insusbiz
{
private static httpresponse response
{
get
{
return httpcontext.current.response;
}
}
private static httprequest request
{
get
{
return httpcontext.current.request;
}
}
//定义一个cookie集合
private static httpcookie insuscookie
{
get
{
return request.cookies["insuscookie"] as httpcookie;
}
set
{
if (request.cookies["insuscookie"] != null)
{
request.cookies.remove("insuscookie");
}
response.cookies.add(value);
}
}
//new cookie集合
private static httpcookie newinsuscookie
{
get
{
httpcookie httpcookie = new httpcookie("insuscookie");
return httpcookie;
}
}
//remove cookie集合
public static void removeinsuscookie()
{
if (insuscookie == null)
response.cookies.remove("insuscookie");
else
response.cookies["insuscookie"].expires = datetime.now.adddays(-1);
}
//创建一个cookie,判断用户登录状态
public static bool loginok
{
get
{
return insuscookie == null ? false : bool.parse(insuscookie.values["loginok"]);
}
set
{
httpcookie httpcookie = insuscookie == null ? newinsuscookie : insuscookie;
httpcookie.values["loginok"] = value.tostring();
insuscookie = httpcookie;
}
}
//创建登录用户的帐号,整站使用
public static string memberid
{
get
{
return insuscookie == null ? string.empty : insuscookie.values["memberid"];
}
set
{
httpcookie httpcookie = insuscookie == null ? newinsuscookie : insuscookie;
httpcookie.values["memberid"] = value;
insuscookie = httpcookie;
}
}
//如果还有整站使用的cookie可以写在此,可以参考loginok或memberid的写法。
}

在应用时,你会看到insusbiz类别下有loginok,memberid和removeinsuscookie等属性:
在程序中使用Cookie集合(定义/新建/删除)及案例讲解 
在程序中怎样使用这些cookie呢?如在登录验证成功之后,你需要把登录状态与登录的id写入cookie中
insusbiz.loginok = true;
insusbiz.memberid = xxx;
在判断用户是否登录时,可以这个去判断:
复制代码 代码如下:

protected void page_load(object sender, eventargs e)
{
if (!insusbiz.loginok)
{
//你没有登录
}
}

如果想在任何位置,想取出登录id:
复制代码 代码如下:

string memberid = insusbiz.memberid;

最后想说的,你想移除cooke,就可以使用insusbiz.removeinsuscookie就可以了,因为它会把cookie的过期时间变更为过去。这个通常应用在用户sign out的事件上。