我使用以下方法检查Cookie是否已启用。它在FireFox和谷歌浏览器上工作正常,但在IE 11上失败。
该方法包括在一个页面中创建一个cookie,然后重定向到另一个读取cookie的页面。如果cookie可以是红色,那么我们假设已启用cookie。
在IE 11中,我将互联网和内部网区域的隐私滑块设置为其最高值(阻止所有Cookie),但无论如何都始终启用Cookie。
这是代码(从msdn中提取):
默认页面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.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("CheckCookies.aspx?redirect=" & Server.UrlEncode(Request.Url.ToString)) Else lblCookie.Text = "Accept cookies = " & Server.UrlEncode(Request.QueryString("AcceptsCookies")) End If End If End Sub
Cookie检查页面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim redirect As String = Request.QueryString("redirect") Dim acceptsCookies As String If Request.Cookies("TestCookie") Is Nothing Then acceptsCookies = "no" Else acceptsCookies = "yes" Response.Cookies("TestCookie").Expires = DateTime.Now.AddDays(-1) End If Response.Redirect(redirect & "?AcceptsCookies=" & acceptsCookies, True) End Sub
有谁能弄清楚为什么这种方法不适用于IE 11?
有没有人有100%可靠的方法来检查cookie是否被禁用?
IE-11 cookie阻止程序可能无法正常工作吗?
谢谢!