protected void Button1_Click(object sender, EventArgs e)
{
string userName = TextBox1.Text;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddYears(10), true, "");
String encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, true));
}
代码如上。。FormsAuthenticationTicket类的构造函数说是可以设置票证过期时的日期但我用火狐看了cookies本机测试的都是当会话结束时过期。之后我看了其他网站的cookies都是几个月后或者1年后。。
本来我用 FormsAuthentication.RedirectFromLoginPage(strUserName, Ckbset.Checked);来设置的但是这样设置只能有30分钟郁闷了msdn上说RedirectFromLoginPage的第2个参数会永久保存。。怎么我不可以呢。。跪求高人指点
回答
//20分钟后到期
TimeSpan ts=new TimeSpan(0, 0, 20, 0);
Response.Cookies["myCookie"].Expires=DateTime.Now.Add(ts);
//一个月后到期
Response.Cookie["myCookie"].Expires=DateTime.Now.AddMouths(1);
//指定具体有效日期
Response.Cookies["myCookie"].Expires=DateTime.Parse("2010-10-1");
//永远不过期
Response.Cookies["myCookie"].Expires=DateTime.MaxValue;
//关闭浏览器后过期
Response.Cookies["myCookie"].Expires=DateTime.MinValue;