当前位置:  开发笔记 > 编程语言 > 正文

何时使用Request.Cookies而不是Response.Cookies?

如何解决《何时使用Request.Cookies而不是Response.Cookies?》经验,为你挑选了3个好方法。

我是否在页面事件(例如加载)时使用响应,因为这是来自ASP.NET的响应,并且在按下按钮时请求,因为这是对ASP.NET进行处理的响应?或者还有更多吗?



1> balexandre..:

它们是两个不同的东西,一个是SAVES [Response],另一个是READS [Request]

在Cookie(信息学说话):)你保存一个小文件一段时间,其中包含类型字符串的对象

在.NET框架中,您保存一个cookie:

HttpCookie myCookie = new HttpCookie("MyTestCookie");
DateTime now = DateTime.Now;

// Set the cookie value.
myCookie.Value = now.ToString();
// Set the cookie expiration date.
myCookie.Expires = now.AddMinutes(1);

// Add the cookie.
Response.Cookies.Add(myCookie);

Response.Write("

The cookie has been written.");

你写了一个可用一分钟的cookie ...通常我们现在这样做.AddMonth(1)所以你可以保存一整个月的cookie.

要检索cookie,请使用请求(您正在请求),如:

HttpCookie myCookie = new HttpCookie("MyTestCookie");
myCookie = Request.Cookies["MyTestCookie"];

// Read the cookie information and display it.
if (myCookie != null)
   Response.Write("

"+ myCookie.Name + "

"+ myCookie.Value); else Response.Write("not found");

记得:

要删除Cookie,没有直接代码,诀窍是保存相同的Cookie名称,其中包含已经过的截止日期,例如now.AddMinutes(-1)

这将删除cookie.

如您所见,每次cookie的生命周期到期时,该文件都会自动从系统中删除.


+1我没有意识到你必须重新保存cookie才能更新到期日
这不支持读取刚刚在响应中发送的cookie,在这种情况下,您需要使用`Response.Cookies`

2> tvanfosson..:

在Web应用程序中,请求来自浏览器,响应是服务器发回的内容.从浏览器验证cookie或cookie数据时,您应该使用Request.Cookies.当您构建要发送到浏览器的cookie时,您需要将它们添加到Response.Cookies.



3> andleer..:

在编写cookie时,请使用Response,但阅读可能取决于您的情况.通常,您从请求中读取,但如果您的应用程序试图获取刚刚编写或更新的cookie并且未发生浏览器往返,则可能需要从响应中读取它.

我已经使用这种模式一段时间了,它对我很有用.

public void WriteCookie(string name, string value)
{
    var cookie = new HttpCookie(name, value);
    HttpContext.Current.Response.Cookies.Set(cookie);
}


public string ReadCookie(string name)
{
    if (HttpContext.Current.Response.Cookies.AllKeys.Contains(name))
    {
        var cookie = HttpContext.Current.Response.Cookies[name];
        return cookie.Value;
    }

    if (HttpContext.Current.Request.Cookies.AllKeys.Contains(name))
    {
        var cookie = HttpContext.Current.Request.Cookies[name];
        return cookie.Value;
    }

    return null;
}


另一种但同等的方法是在保存时简单地将cookie写入Response.Cookies和Request.Cookies集合.这样,循环中的任何其他逻辑都可以读取您刚刚设置的cookie,而无需查看Response对象.
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有