在C#中使用HttpCookie而不是Session

时间:2015-08-18 17:42:40

标签: c# asp.net cookies

我想在ASP.NET中使用HttpCookie而不是Session

我在登录页面设置cookie并将其重定向到下一页时遇到问题。如果我尝试访问下一页中的cookie,则返回null。

登录页码

HttpCookie loginCookie = new HttpCookie("LoginInfo");
loginCookie["EmailID"] = txt_email.Text;
loginCookie.Domain = ConfigurationManager.AppSettings["SiteURL"];
loginCookie.Expires = DateTime.Now.AddDays(30);
loginCookie.Secure = false;
loginCookie.Domain = "/";
Response.Cookies.Add(loginCookie);
Response.Redirect("home.aspx");

首页代码

HttpCookie loginCookie = new HttpCookie("LoginInfo");
if (loginCookie["EmailID"] == null)
{
   Response.Redirect("Default.aspx");
}

1 个答案:

答案 0 :(得分:4)

您无需创建新的Cookie,而是使用Request.Cookies

检索现有的HttpCookie loginCookie = Request.Cookies["LoginInfo"];
Domain

请参阅:How to: Read a Cookie - MSDN

要做的另一件事是从第一个代码中删除设置HttpCookie loginCookie = new HttpCookie("LoginInfo"); loginCookie["EmailID"] = txt_email.Text; //loginCookie.Domain = ConfigurationManager.AppSettings["SiteURL"]; //This one loginCookie.Expires = DateTime.Now.AddDays(30); loginCookie.Secure = false; //loginCookie.Domain = "/"; //and This one Response.Cookies.Add(loginCookie); Response.Redirect("home.aspx"); ,您要设置两次,只需注释掉这两行。

Domains