【发布时间】:2010-12-29 17:32:10
【问题描述】:
基本上,如果客户端禁用了 cookie,我想知道这是否...
dim newCookie = New HttpCookie("cookieName", "cookieValue")
newCookie.Expires = DateTime.Now.AddDays(1)
response.cookies.add(newCookie)
注意我设置了一个日期,所以它应该存储在磁盘上,如果禁用 cookie,asp.net 会自动将此 cookie 存储为会话 cookie(这是一个持续存在于浏览器内存中的 cookie,直到用户关闭浏览器,如果我没记错的话).... 或者 asp.net 根本不添加 cookie(在任何地方),在这种情况下,我必须在没有日期的情况下将 cookie 重新添加到集合中(存储为会话 cookie) ...当然,这需要我添加一个cookie两次...如果它无论如何都存储在浏览器内存中,也许第二次是不必要的...我只是尽量不存储它两次,因为它只是糟糕的代码!!如果我需要写另一行,有什么想法吗? (应该是)...
response.cookies.add(New HttpCookie("cookieName", "cookieValue") ' 客户端浏览器内存中的会话cookie
谢谢大家
【问题讨论】:
-
只是一个评论,我不是在谈论会话对象以及它如何将其 id 保存在 cookie 中,我只是在谈论会话 cookie 和 cookie...(与会话对象无关) ...会话cookie是指客户端内存cookie数据(客户端内存,而不是服务器)
-
对此没有混淆。你最终想要做的事情是不可能的。 “会话 cookie”是一个 cookie,IE 显然使用了一些智能逻辑来解决这个问题。
-
一个小注意点,你说你想“[存储]信息在用户计算机内存(客户端/浏览器内存)中,而不是连续传输数据(viewState)或将其全部加载到我的服务器内存 (sessionState)" - 如果您使用默认路径为此使用 cookie,则 cookie 及其数据将随每个请求发送到服务器 ,并存储在 Request 对象的 Cookies 集合中,因此您实际上并没有在任何一端进行任何节省,而是实际上为各方做了更多的工作。您可以查看 Silverlight 或 Flash 存储选项...
标签: c# asp.net ajax cookies client