登录后服务器记不住登录状态。。。。(重开贴,定要解决这个问题!)
用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
说明验证票是对的,但为何记不住呢?
***********最高分赠!********************
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:13
songhtao
(三十年孤独)
等 级:
3
4
#1楼 得分:0回复于:2009-07-28 11:11:56seesion的超时设置了没有?
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:【讨论、技术】如何使用.NET开发浏览器
xu20032
等 级:
#2楼 得分:0回复于:2009-07-28 11:14:26seesion我就没用啊。你指的是设置那里?
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:movewindow api在c#中对应的函数是什么?
enihs
(shine)
等 级:
#3楼 得分:0回复于:2009-07-28 11:28:02web.config内要设置平滑过期slidingExpiration 为false
参考
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:[可用分回赠参与帖]从snk形式文件导出xml形式的密钥密钥对供程序使用,不知道怎样实现?
CloudOfFly
(追忆)
等 级:
#4楼 得分:0回复于:2009-07-28 11:30:26引用 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"/>
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:求用VB2005做软件升级程序
cpp2017
(慕白兄)
等 级:
5
更多勋章 #5楼 得分:0回复于:2009-07-28 11:33:36try:
<authentication mode="Forms">
<forms slidingExpiration="false" .........
</authentication>
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:session老是丢失的问题
wybxs2006
(飞虎)
等 级:
#6楼 得分:0回复于:2009-07-28 12:21:03Forms
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
qq196260188
(qq196260188)
等 级:
#7楼 得分:0回复于:2009-07-28 12:59:20最好用session,不要用什么控件
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
xu20032
等 级:
#8楼 得分:0回复于:2009-07-28 21:34:11经实验,以上方法都不行喔:
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>
不行,还是过期。。。。。。。。。。。。。。。。。。。。
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
xu20032
等 级:
#9楼 得分:0回复于:2009-07-29 08:28:22迷人知道吗?
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
IHandler
(Ferry)
等 级:
#10楼 得分:0回复于:2009-07-29 08:36:45服务器可能设置了定时资源回收
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
yanm7788
(颜)
等 级:
#11楼 得分:0回复于:2009-07-29 08:42:25服务器做了设置...会定时资源回收的.不这样做服务器也受不了...
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
net_lover
(【孟子E章】)
等 级:
3
3
更多勋章 #12楼 得分:0回复于:2009-07-29 09:02:01String u = Request.QueryString["ReturnUrl"];
if(u == null || u == "") u = "Default.aspx";
Response.Redirect(u);
试试。可能.net版本不同造成的
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP
xu20032
等 级:
#13楼 得分:0回复于:2009-07-29 12:07:32都不行呀,同样的代码,过去在我的服务器上也是记得住登录的,这会转到虚拟主机上就不行了。
我是在.net 1.1上搞的,服务器是2.0
这是为什么呢?
--------------------编程问答-------------------- 看看cookies 的作用域呢 --------------------编程问答-------------------- 作用域应该没问题吧,因为:
1)还是能记住好像60分钟。
2)同一页上的另一段cookies代码,保留用户名的,是可以用的,长期不掉。
Dim mycookie As HttpCookie = New HttpCookie("cookie_name1", Server.UrlEncode(strusrname))
mycookie.Expires = DateTime.Now.AddYears(1)
Response.Cookies.Add(mycookie) --------------------编程问答-------------------- ding --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 别你一台机子试
让大家一起帮你试试
还有 用ie不行的话 用火狐试试 可能是浏览器的问题 --------------------编程问答-------------------- 不定 --------------------编程问答-------------------- 你直接看看你这个cookie的物理文件,30分钟后它啥样子 --------------------编程问答-------------------- 找到那个cookie 看以看吧 --------------------编程问答-------------------- 你30分钟后看看Page.User.Identity.Name是多少 --------------------编程问答-------------------- 可以在全局应用程序Global.asax里的Application_Start,Session_Start,Application_Error,Session_End,Application_End 里面去做几个操作数据库的代码,或者直接弹出一句话试下,看看有什么异常没 --------------------编程问答-------------------- 个人分析 首先不是程序的问题 cookie已经可以正常设置,只是隔半个小时丢失。
此种原因可能是跟 asp。net三种登录方式 与 验证方式有关
在web.config中和 iis中设置一下 然后再试试
<authentication mode= "Passport"/>
--------------------编程问答-------------------- 我觉得1/2是 身份验证的事,你换个 浏览器 或者让别人帮你试试 应该不会出现问题。
<authentication mode= "[Windows|Forms|Passport|None]"/>
上个是passport身份验证
--------------------编程问答-------------------- <forms name="login_name" loginUrl="login.aspx" timeout="60" path="/" />
是不是timeout=60搞得鬼?
补充:.NET技术 , ASP.NET