C# 如何检查asp.net中是否启用或禁用了Cookie?
它工作不正常。请参阅以下链接 唯一的检查方法是设置cookie,然后重定向它,然后再次检查您是否能够访问它。因此,请尝试上面链接中提到的以下方法C# 如何检查asp.net中是否启用或禁用了Cookie?,c#,asp.net,cookies,C#,Asp.net,Cookies,它工作不正常。请参阅以下链接 唯一的检查方法是设置cookie,然后重定向它,然后再次检查您是否能够访问它。因此,请尝试上面链接中提到的以下方法 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.Browser.Cookies) { if (Request.QueryString["check"] ==
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");
}
可能重复如果用户将完整URL(包括cookieCheck参数)添加到书签中,则此操作无效。要区分@Ash指出的内容,可以将
cookieCheck
的值设置为dateyyyyMMddHHmmss
。当你接到电话时,你分析日期并检查与日期时间的差异。现在不超过几秒钟。备选方案:您可以设置一个Guid
,并在短时间内将其存储在服务器缓存中。。。(有解决方案:-)
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;
}