c# - 如何检查 cookie 在 asp.net 中是否启用或禁用?

标签 c# asp.net cookies

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (Request.Browser.Cookies)
        {
            if (Request.QueryString["check"] == null)
            {
                HttpCookie cookie = new HttpCookie("testcookie");
                Response.Cookies.Add(cookie);
                Response.Redirect("Default.aspx?check=1");
            }
            else
            {
                HttpCookie cookie = Request.Cookies["testcookie"];
                if(cookie==null)
                {
                    Label1.Text = "enable cookies";
                }
            }
        }
        else
        {
            Label1.Text = "cookies not supported:";
        }
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    HttpCookie cookie = new HttpCookie("userinfo");
    cookie["name"] = TextBox1.Text;
    cookie["email"] = TextBox2.Text;
    //cookie.Expires = DateTime.Now.AddDays(30);
    Response.Cookies.Add(cookie);
    Response.Redirect("Default2.aspx");

}

它无法正常工作。

最佳答案

请参阅以下链接。

http://forums.asp.net/t/1044823.aspx?How+to+check+cookies+enabled+in+a+web+browser+

检查的唯一方法是设置一个 cookie,然后重定向它并再次检查您是否能够访问它。因此,请尝试上面链接中提到的以下方法。

protected void Page_Load(object sender, EventArgs e)
{
    if (this.IsCookieDisabled())
      errorMsgLabel.Text = Resources.Resource.BrowserDontSupportCookies;

}


private bool IsCookieDisabled()
{
 string currentUrl = Request.RawUrl;

 if (Request.QueryString["cookieCheck"] == null)
 {
     try
     {
            HttpCookie c = new HttpCookie("SupportCookies", "true");
            Response.Cookies.Add(c);

            if (currentUrl.IndexOf("?") > 0)
                currentUrl = currentUrl + "&cookieCheck=true";
            else
                currentUrl = currentUrl + "?cookieCheck=true";

            Response.Redirect(currentUrl);
       }
       catch(Exception ex)
       {
          return false;
       }
 }

 if (!Request.Browser.Cookies || Request.Cookies["SupportCookies"] == null)
      return true;

return false;
}

关于c# - 如何检查 cookie 在 asp.net 中是否启用或禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932058/

相关文章:

c# - 获取点击控件的点

asp.net - 如何通过 ODBC 将 UTF8 文本从 ASP.NET 写入 MySQL?

macos - 如何在 OS X 10.10 (Yosemite) 上的 Safari 8.0 中以编程方式删除 cookie

cookies - Varnish 从后端响应中删除特定的 cookie

angular - 浏览器不保存 cookie

c# - 从 Active Directory c# 检索图片

c# - 如何在c#中仅在耳机的左声道和仅在耳机的右声道播放声音?

c# - 使用反射在 C# 中创建没有默认构造函数的类型实例

jquery - 如何使用Tab键进入下一个标签

ASP.NET 和 Javascript DOM 操作