ASP.NET forms凭据设置和跳转的几种方法

时间:2021-05-21 23:42:17
    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));
http://www.cnblogs.com/FlyCat/archive/2012/08/08/2628379.html
转自:https://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthentication.getredirecturl(VS.80).aspx