cookie 检查不起作用

cookie check isn't working

我在我的网站的首页上放置了一个 "try it out" 功能 - 基本上访问者可以在浏览器中尝试我的网站所做的一组非常有限的功能,以了解它的全部内容。

我想放入一个持久性 cookie,以检查他们之前是否尝试过,如果尝试过,则将他们引导至注册页面(我知道这并非万无一失,但我不是在寻找诺克斯堡,任何想要避免检查的人都永远不会注册,我只是想劝说喜欢该功能的人可能会注册。)

当用户点击试用按钮时,我的代码是:

//check cookie to see if this has been tried before
    HttpCookie myCookie = HttpContext.Current.Request.Cookies["myCookie"];
    if (myCookie == null)
    {
generateLink()
}
else {
response.Redirect(~/SignUp);
}

在 generateLink() 方法的末尾我有代码:

HttpCookie myCookie = new HttpCookie("myCookie");
    myCookie.Values.Add("HasTried", "True");
    myCookie.Expires = DateTime.Now.AddHours(9680);

但是 "try it out" 按钮总是生成 Link,并且从不触发 respone.redirect。我哪里错了?

您需要将 cookie 添加到响应中:

Response.Cookies.Add(myCookie);

如果您将它放在 generateLink() 代码的末尾,这会将 cookie 写入浏览器。

参见: How to write a cookie,来自 MSDN。

Response.Cookies.Add(myCookie);

结尾缺少