如果禁用cookie,asp.net是否会将cookie存储为会话cookie?

基本上,如果cookeis在客户端被禁用,我想知道这是否……

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(客户端浏览器内存中的新HttpCookie(“cookieName”,“cookieValue”)’会话cookie

多谢你们

这篇MSDN文章似乎表明,没有内置机制来补偿用户禁用cookie。 它还表示如果没有启用某种级别的cookie,会话状态将不起作用。

我认为有一种机制可以传递会话ID的查询变量,但是浏览文章(很快)我没有看到这个。

希望有所帮助。

编辑:它确实说你可以使用无cookie会话(我以为你可以)。 他们使用单独的机制在页面和URL链接中嵌入会话ID。

为了跟进GrayWizardx的回复,所说的大部分都是完全准确的。

如果您使用Cookie的版本的会话,并禁用cookie,那么您运气不好。 但您可以选择使用Session的无cookie版本,该版本会在显示用户会话ID的URL中添加一个字符串。 这看起来非常丑陋,从安全角度来看我一直很关心。

所以你有三个选择(我可以想到我的头脑):1。需要cookie。 这不是一件坏事,特别是如果您的网站是正常需要cookie的网站。 2.使用ViewState。
3.在URL中将页面之间的信息传递给页面。 从安全角度来看,这再次让我担心。