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; }
原文地址:https://www.jb51.cc/csharp/92835.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。