【问题标题】:How can I programmatically test for cookies?如何以编程方式测试 cookie?
【发布时间】:2019-01-21 18:07:37
【问题描述】:

如何检查/检测用户是否接受 cookie?使用 ASP.NET (C#)

【问题讨论】:

    标签: c# asp.net cookies


    【解决方案1】:

    来自MSDN

    确定 cookie 是否被接受的一种方法是尝试写入 cookie,然后尝试再次读取它。如果您无法读取您编写的 cookie,则认为浏览器中的 cookie 已关闭。

    写:

    Sub Page_Load()
       If Not Page.IsPostBack Then
          If Request.QueryString("AcceptsCookies") Is Nothing Then
               Response.Cookies("TestCookie").Value = "ok"
               Response.Cookies("TestCookie").Expires = _
                  DateTime.Now.AddMinutes(1)
               Response.Redirect("TestForCookies.aspx?redirect=" & _
                  Server.UrlEncode(Request.Url.ToString))
          Else
               labelAcceptsCookies.Text = "Accept cookies = " & _
                  Request.QueryString("AcceptsCookies")
          End If
       End If
    End Sub
    

    然后阅读

    Sub Page_Load()
        Dim redirect As String = Request.QueryString("redirect")
        Dim acceptsCookies As String
        ' Was the cookie accepted?
        If Request.Cookies("TestCookie") Is Nothing Then
            ' No cookie, so it must not have been accepted
            acceptsCookies = 0
        Else
            acceptsCookies = 1
            ' Delete test cookie
            Response.Cookies("TestCookie").Expires = _
               DateTime.Now.AddDays(-1)
        End If
        Response.Redirect(redirect & "?AcceptsCookies=" & acceptsCookies, _
           True)
    End Sub
    

    【讨论】:

    • 如果数据传输因某种原因(网络负载)延迟超过一分钟,它将无法正常工作。也许放更长的时间。
    • 检查以确保人们不会将您的重定向页面用于坏事,例如重定向到钓鱼网站等...
    • 似乎是不可能的。如果我知道 cookie 有效,我试图阻止写入会话和 cookie。我想我需要两个都写。
    【解决方案2】:

    将值保存到 cookie,重定向到某个页面并尝试读回该值。如果有效,则启用 cookie。如果不是,那就不是。

    【讨论】:

      【解决方案3】:
      1. 创建一个
      2. 试试看?

      【讨论】:

        猜你喜欢
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-16
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多