服务器上记不住登录状态
用asp.net 写的登录后记住登录状态,在我的电脑上试,可以记住,几天都不掉。但传到虚拟主机上,就是记不住,30分钟就没了。请大家帮看看,是什么问题?登录代码:
Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, strusrname, DateTime.Now, DateTime.Now.AddYears(2), ckpass1.Checked, "String", FormsAuthentication.FormsCookiePath)
Dim str_encrytyped_ticket As String = FormsAuthentication.Encrypt(ticket)
Dim authenticationcookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName, str_encrytyped_ticket)
If ckpass1.Checked Then
authenticationcookie.Expires = DateTime.Now.AddYears(2)
End If
Response.Cookies.Add(authenticationcookie)
Response.Redirect(FormsAuthentication.GetRedirectUrl(strusrname, ckpass1.Checked))
---------------------------
webconfig这样设置的:
<forms name="login_name" loginUrl="login.aspx" timeout="60" path="/" />
----------------------------
1.在我的电脑上是记得住的。
2.在服务器上可以记住30分钟。但30分钟后就没了。
3.在30分钟内,查看验证票显示:
path=//过期时间=2011-7-26 10:47:23/是否过期=False/是否长久=True/发布日期=2009-7-26 10:47:23/ticket.name=qqqq/版本=1/
说明:
过期时间=2011-7-26 10:47:23
是否长久=True
说明验证票是对的,但为何记不住呢?
***********最高分赠!******************** --------------------编程问答-------------------- seesion的超时设置了没有? --------------------编程问答-------------------- seesion我就没用啊。你指的是设置那里? --------------------编程问答-------------------- web.config内要设置平滑过期slidingExpiration 为false
参考 --------------------编程问答--------------------
在web.config 中设置
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120" stateNetworkTimeout="7200"/> --------------------编程问答-------------------- try:
<authentication mode="Forms">
<forms slidingExpiration="false" .........
</authentication> --------------------编程问答-------------------- Forms --------------------编程问答-------------------- 最好用session,不要用什么控件 --------------------编程问答-------------------- 经实验,以上方法都不行喔:
1.在web.config 中设置
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120" stateNetworkTimeout="7200"/>
2.<authentication mode="Forms">
<forms slidingExpiration="false" .........
</authentication>
不行,还是过期。。。。。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 迷人知道吗? --------------------编程问答-------------------- 服务器可能设置了定时资源回收 --------------------编程问答-------------------- 服务器做了设置...会定时资源回收的.不这样做服务器也受不了... --------------------编程问答-------------------- String u = Request.QueryString["ReturnUrl"];
if(u == null || u == "") u = "Default.aspx";
Response.Redirect(u);
试试。可能.net版本不同造成的 --------------------编程问答-------------------- 都不行呀,同样的代码,过去在我的服务器上也是记得住登录的,这会转到虚拟主机上就不行了。
我是在.net 1.1上搞的,服务器是2.0
这是为什么呢?
补充:.NET技术 , ASP.NET