string user = "userName"; //默认的第1种,超时时间是在web.cofig中forms设置的timeout,单位是分钟,生成的cookie和凭证超时时间一样 FormsAuthentication.RedirectFromLoginPage(user, true); //第二种,自定义cookie超时时间,但是即使cookie没超时凭证超时,还是需要重新登录 HttpCookie AuthCookie = FormsAuthentication.GetAuthCookie(user, false); AuthCookie.Expires = DateTime.Now.AddDays(10); Response.Cookies.Add(AuthCookie); Response.Redirect(FormsAuthentication.GetRedirectUrl(user, true)); //第3种,可以自定义凭证和cookie超时时间 var nowDate = DateTime.Now; var myTicket = new FormsAuthenticationTicket(1, user, DateTime.Now, DateTime.Now.AddMinutes(60), false, "other data"); string encryptedTicket = FormsAuthentication.Encrypt(myTicket); //加密用户凭证 //把用户凭证存入Cookie HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); //authCookie.Expires = DateTime.Now.AddMinutes(60); //不设置时间即为会话cookie Response.Cookies.Add(authCookie); Response.Redirect(FormsAuthentication.GetRedirectUrl(user, true));