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");
}
它无法正常工作。
答案 0 :(得分:11)
请参阅以下链接。
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;
}