问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中如何使用Cookie?

发布网友 发布时间:2022-05-13 12:48

我来回答

4个回答

懂视网 时间:2022-05-19 19:49

在程序开发中,使用Cookie时,很少使用如http://jb51.net/article/33590.htm的写法。习惯写成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呢?如在登录验证成功之后,你需要把登录状态与登录的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的事件上。

热心网友 时间:2022-05-19 16:57

1、添加Cookie

protected void Button1_Click(objectsender, EventArgs e)

{

HttpCookiecookies = new HttpCookie("website"); 

//方法一

cookies.Values.Add("name","Jianjie1");

cookies.Values.Add("sex","1");

//方法二

cookies["name"]= "Jianjie2";

cookies["sex"]= "0";

cookies.Expires = DateTime.Now.AddMinutes(60);

Response.Cookies.Add(cookies);

}

2、修改Cookie

新建一个页面CookieModify.aspx,进行测试

下面写法错误:

protected void Button1_Click(objectsender, EventArgs e)

{

HttpCookiecookies = Request.Cookies["website"];

if(cookies != null)

{

cookies.Values["name"] = this.TextBox1.Text;

cookies.Values.Add("newid", "0001");

}

}

再加上一句Response.AppendCookie(cookies);如下

protected void Button1_Click(objectsender, EventArgs e)

{

HttpCookiecookies = Request.Cookies["website"];

if(cookies != null)

{

cookies.Values["name"] = this.TextBox1.Text;

cookies.Values.Add("newid", "0001");

Response.AppendCookie(cookies);

}

}

再新建一个取值页面CookieGet.aspx,用它展示Cookie值,结果竟然报错


Cookies的值为NULL。

反复测试,发现在当前页面上跳转,Cookie取值正常,再打开一个新窗体页面中取值Cookie为NULL,

检查很久,最后尝试在修改页面CookieModify.aspx中增加过期时间:cookies.Expires =DateTime.Now.AddMinutes(60); 修改成功!

代码如下

protected void Button1_Click(objectsender, EventArgs e)

{

HttpCookiecookies = Request.Cookies["website"];

if(cookies != null)

{

cookies.Values["name"] = this.TextBox1.Text;

cookies.Values.Add("newid", "0001");

cookies.Expires = DateTime.Now.AddMinutes(60);

Response.AppendCookie(cookies);

}

}

自己理解:修改Cookie后Response.AppendCookie(cookies); Cookie的默认过期时间是当前会话有效,所以在当前页面中跳转可以正常取值,重新打开一个新的窗体Cookie过期了为空。所以最好还是给Expires赋予过期时间。

3、删除Cookie

删除Cookie中的一个Value键值

protected void btnDeleteItem_Click(objectsender, EventArgs e)

{

HttpCookiecookie = Request.Cookies["website"];

if(cookie != null)

{

cookie.Values.Remove("name");

cookie.Expires = DateTime.Now.AddMinutes(60);

Response.AppendCookie(cookie);

}

}

删除一个Cookie

protected void btnDeleteCookie_Click(objectsender, EventArgs e)

{

HttpCookiecookie = Request.Cookies["website"];

if(cookie != null)

{

cookie.Expires = DateTime.Now.AddDays(-1);

Response.AppendCookie(cookie);

}

}

以上代码均经过测试,删除成功!

源自长沙软件公司--小房子

热心网友 时间:2022-05-19 18:15

状态保持的时候用嘛! 简单给你说下: 因为它属于连个对象 request对象和response 对象,request对象是用来取cookie的,而response对象是用来存cookie的值,所以用法是:(存) response.cookies["song"].value=值。 (取 ) string jian = request.cookies["songjian"].value ,因为每一个cookie都属于叫一个cookies的集合当中,所以要用索引器的方式进行存取! 相信你明白了吧!

热心网友 时间:2022-05-19 19:50

你发个头过来
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陌陌发语音出现转码失败怎么办 女孩2010年5月10号阴历3月27早晨9点55分出生的五行缺什么 钟姓男孩名字2023年5月10日出生的 凤眼果有什么营养?凤眼果的这些营养你都知道吗? 专升本成绩多少合格 山东专升本成绩多少合格 山东2022年专升本成绩什么时候出 2024专升本成绩公布时间及入口 2023年山东专升本各专业录取分数线 什么时候出专升本成绩 山东专升本综合素质测评成绩怎么算 拉不下面子去摆摊该怎么办? 我是研究生毕业,想去摆地摊,怕人笑话怎么办 如何克服胆怯走出摆摊的第一步? 摆地摊放不下面子怎么办 想用路边摊做小本生意,又害怕丢人,有害怕挣不了钱 父母在摆摊卖东西,去帮忙被同学看到了感觉很尴尬丢人怎么办呢? 如何使用电脑的cookie功能 怎样摆脱感觉「摆地摊」很丢人的这种心理 最近失业了,想去摆地摊,货都进好了,明天要去摆,好紧张,怕丢人!怎么办!! 想去学校门口摆地摊,但是怕丢人,怎么让自己胆子大点 本人95年的,我想摆地摊卖小吃,可我怕丢人,没有勇气!大神告诉我个方法!我有这个想法却很难塌开来第 徕卡Q没有手动对焦环,如何使用超焦距对焦? 摆地摊放不下面子怎么办? 想摆地摊,怕遇到老同学或者熟人怎么办? 想摆摊,没人合伙,一个人总是胆小怕麻烦怕丢人怎么办? 莱卡M11能自动对焦吗 我想出去摆地摊,但觉得尴尬,丢人的感觉怎么办? 第一次摆地摊,感觉很丢人怎么办,我怕遇见认识的人,特别是同学 怎么样克服怕丢面子,例如摆地摊怕丢人 谁知道QQ空间中的背景能免费更换么?怎么改呀? jmeter中cookie管理器如何使用? 饮酒驾车判断标准 荣耀手机上的老农民为什么投不了屏 opporeno4se手机投屏手机关了还能投吗 奇遇vr一体机投不了屏 多屏互动能不能投抖音 ledshow为什么投屏投不了 为什么我的新电视不能长期投屏,投了几个视频就叫升级啥意思 想换流畅耐用的手机,求推荐 李准主演的:演员就是演员完整版有多少分钟? 李准的电影《演员就是演员》什么时候能看到? 演员就是演员 床戏 几分钟 黄鼠狼为什么怕鹅粪 鹅粪能使黄鼠狼烂脚的道理 黄鼠狼怕鹅有依据吗 为什么黄鼠狼怕鹅,听说鹰都怕鹅,这是为什么啊? 来春凤,给我看看艺术签名怎么写 科学超电磁炮的等级顺序是怎么样的? 艺术签名 麻烦大家给设计个“初春波“的签名。。 lv皮的特别硬,会是假的么?