C#中Request.Cookies 和 Response.Cookies 的区别分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中Request.Cookies 和 Response.Cookies 的区别分析相关的知识,希望对你有一定的参考价值。

Request.Cookies:主要是用于获取所有Cookie值的,包括JS、Request.Cookies和Response.Cookies三种方法创建的Cookie值;说到这里,大家可以看出Request.Cookies既可以获取Cookie也可以创建Cookie,那么它创建的Cookie与Response和JS创建的Cookie有什么不用呢,通过实验发现,通过Request.Cookies创建的Cookie只有?Request.Cookies才能获取到,而其他两种方法是不能获取的,也就是说Request.Cookies创建的Cookie只能用于.Net后台不能用于HTML的前台。

Response.Cookies:主要用于Cookie的创建、赋值和删除操作,经过?Response.Cookies操作过的Cookie,所有方法获取到的都是被更新过的值,也就是说Response.Cookies是修改所有容器中的Cookie的值;Response.Cookies除了是Cookie的终极修改者外,我们在写代码的时候可能会发现通过Response.Cookies也可以得到部分Cookie的值,通过实验发现,此处获取的Cookie值只是本次会话中且是通过Response.Cookies创建的Cookie,基本上没什么用处。
参考技术A ★ Request
提供对当前页请求的访问,其中包括请求标题、Cookie、客户端证书、查询字符串等。可以使用此类读取浏览器已经发送的内容。
下面的C#代码示例说明如何从 HttpRequest 对象获取 Headers 集合并将其写入 ASP.NET 页。
int loop1, loop2;
NameValueCollection coll;

coll=Request.Headers;
String[] arr1 = coll.AllKeys;
for (loop1 = 0; loop1<arr1.Length; loop1++)

Response.Write("Key: " + arr1[loop1] + "<br>");
String[] arr2=coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2<arr2.Length; loop2++)

Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");


★ Response
提供对当前页的输出流的访问。可以使用此类将文本插入页中、编写 Cookie,等等。
下面的C#代码示例演示如何通过使用 HttpResponse 对象创建 Cookie,并将其添加到页的 HTTP 输出。
HttpCookie MyCookie = new HttpCookie("LastVisit");
DateTime now = DateTime.Now;
MyCookie.Value = now.ToString();
MyCookie.Expires = now.AddHours(1);
Response.Cookies.Add(MyCookie);

c# 字符串 中查找字符,判断是否包含字符串

Eval("spr").ToString().IndexOf(HttpUtility.UrlDecode(Request.Cookies["UserName"].Value))>-1   //spr字段是否有当前用户名

以上是关于C#中Request.Cookies 和 Response.Cookies 的区别分析的主要内容,如果未能解决你的问题,请参考以下文章

C# 清楚Cookies

Request.Cookies和Response.Cookies

Request.Cookies使用方法分析

控制器中的 request.cookies 和 cookie 有啥区别?

如何给cookies设置过期时间?

Django关于设置和获取cookies