确定ASP.NET中是否启用了cookie的最佳方法?

Rya*_*son 22 asp.net cookies

确定用户浏览器是否在ASP.NET中启用了Cookie的最佳方法是什么

Mat*_*ley 18

设置cookie,强制重定向到某个检查页面并检查cookie.

或者在每个页面加载上设置一个cookie,如果尚未设置的话.例如,我假设这是为了检查cookie是否支持在他们尝试登录时显示他们需要启用cookie的消息.如果访客用户尚未设置cookie,请将您的登录cookie设置为某个默认值.然后在您的登录页面上,检查用户cookie,如果未设置,则显示您的消息.


med*_*eda 6

@Mattew 是对的,找出答案的唯一方法是设置 cookie、重定向,然后检查它。\n这是一个用于执行检查的 C# 函数,您可以将其放入页面加载事件中:

\n\n
private bool cookiesAreEnabled()\n{\nbool cookieEnabled = false;\n\nif(Request.Browser.Cookies)\n{\n   //Your Browser supports cookies \n   if (Request.QueryString["TestingCookie"] == null)\n   {\n     //not testing the cookie so create it\n     HttpCookie cookie = new HttpCookie("CookieTest","");\n     Response.Cookies.Add(cookie);\n\n     //redirect to same page because the cookie will be written to the client computer, \n     //only upon sending the response back from the server \n     Response.Redirect("Default.aspx?TestingCookie=1")\n   }\n   else\n   {\n     //let\'s check if Cookies are enabled\n      if(Request.Cookies["CookieTest"] == null)\n      {\n        //Cookies are disabled\n      }\n      else\n      {\n        //Cookies are enabled\n        cookieEnabled = true;\n      }   \n   }\n\n}\nelse\n{\n  // Your Browser does not support cookies\n}\nreturn cookieEnabled;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n


\n你也可以在 javascript 中这样做,这样:

\n\n

function cookiesAreEnabled()\n{   \n    var cookieEnabled = (navigator.cookieEnabled) ? 1 : 0;  \n\n    if (typeof navigator.cookieEnabled == "undefined" && cookieEnabled == 0){   \n    document.cookie="testcookie";   \n    cookieEnabled = (document.cookie.indexOf("test\xc2\xadcookie") != -1) ? 1 : 0; \n    }   \n\n  return cookieEnabled == 1;\n}\n
Run Code Online (Sandbox Code Playgroud)\n