首页 文章

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

提问于
浏览
1

基本上,如果 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(任何地方),在这种情况下,我必须 re-add 没有日期的 cookie 集合(存储为会话 cookie)...当然,这将需要我两次添加一个 cookie ...也许第二次不必要地如果它被存储在浏览器内存中...我只是试图不存储它两次,因为它只是坏代码!任何想法,如果我需要写另一行? (会是)......

客户端浏览器内存中的 response.cookies.add(New HttpCookie(“cookieName”,“cookieValue”)'会话 cookie

多谢你们

2 回答

  • 1

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

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

    希望有所帮助。

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

  • 1

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

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

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

相关问题