<authentication mode="Forms">登陆成功后票据信息放在cooke一个小时,关闭页面,再打开又回到登陆页面、
我的代码,配置如下。 <authentication mode="Forms">
<forms path="/" loginUrl="login.aspx" protection="All" name="p_houtai" defaultUrl="/"/>
</authentication>
验证成功后,
string userData = GetUserData(ds);
FormsAuthentication.SetAuthCookie(userData, false);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddHours(1.0), false, userData);
string str2 = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, str2);
HttpContext.Current.Response.Cookies.Add(cookie);
Response.Redirect("index.aspx");
关闭这个页面后,再开index.aspx又回到登陆页面了
cookie.Expires = DateTime.Now.AddHours(1);你在箭头的地方添加这句话,就可以了。
可以了
FormsAuthentication.SetAuthCookie(userData, true);这段代码是不是可以不要
如果想再开时不需要登录,需要:
FormsAuthentication.SetAuthCookie(userData, true);
true还是不行
@路旭辉: FormsAuthenticationTicket中也要设置为true
@dudu:
@路旭辉:
简单一些
1. web.config
<authentication mode="Forms">
<forms path="/" loginUrl="login.aspx" protection="All" name="p_houtai" defaultUrl="/" timeout="60"/>
</authentication>
2. 代码
FormsAuthentication.SetAuthCookie(userData, true);
后面的代码不需要。
@路旭辉: FormsAuthentication.SetAuthCookie(userData, true);可以不要
服务器端超时了
1、没有写入cookie:Response.Cookies.Add(cookie)
2、cookie被清除了
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, str2);
HttpContext.Current.Response.Cookies.Add(cookie);
必須制定cookie的過期時間。
FormsAuthentication.SetAuthCookie(userData, true);这段代码是不是可以不要
@路旭辉: 可以。如果加了 你的 寫cookie的代碼 ,就不需要了。如果沒有加 ,就需要。
@無限遐想:
form验证的核心可能是如果浏览器不支持cookie,就用url验证。
@路旭辉: 如果浏览器不支持cookie,就用url验证。這個只需要在web.config中配置就好了。