当前位置:编程学习 > C#/ASP.NET >>

服务器上记不住登录状态

用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 
参考 --------------------编程问答--------------------
引用 1 楼 songhtao 的回复:
seesion的超时设置了没有?


在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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,