首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

由于session随时会丢失,请问一下是如何保存用户登陆信息的

2012-03-13 
由于session随时会丢失,请教一下各位高手是怎么保存用户登陆信息的?我用cookies保存用户名和密码,登陆后用

由于session随时会丢失,请教一下各位高手是怎么保存用户登陆信息的?
我用cookies保存用户名和密码,
登陆后用session保存用户名,但很session随时都会丢失的,那样又要登陆了,好麻烦!
请问一下有什么好的办法解决这个问题?

[解决办法]
cookie+session
[解决办法]
session怎么个容易丢失法?设置有效时间setTimeOut?
[解决办法]
昏倒,你把setTimeOut=“时间”改了。就是时间改长点就好了啊
[解决办法]
session很容易丢吗?
[解决办法]
session很容易丢吗?
[解决办法]
setTimeOut
[解决办法]
Session随时会丢失?.
不过也没错,本来.net的session是不稳定,你把时间设一下
[解决办法]
session和cookie结合
[解决办法]
用隐藏的label来保存
[解决办法]

探讨
session和cookie结合

[解决办法]
session丢失除了设置过期时间之外,还有个重要因素是IIS的设置!因为如果服务器会监视所有的进程,发现谁变大了就会收缩它。
[解决办法]
 SessionState 的Timeout,其主要原因有三种。

  一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。

  二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。

  三:程序有框架页面和跨域情况。

  第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
  第二种是检查代码有无Session.Abandon()之类的。
  第三种是在Window服务中将ASP.NET State Service 启动。
[解决办法]
用数据库来保存session就不会丢了,教lz一种方法,保准管用:
1.在web.config里设置mode=SQLServer,并用数据库来保存session;如:
<sessionState mode="SQLServer" 
cookieless="true" sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"
timeout="20"/> 

2.在运行 SQL Server 的计算机(它将存储会话状态)上运行 InstallSqlState.sql(默认的安装位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version)。这将创建一个名为 ASPState 的数据库,该数据库具有新的存储过程并且在 TempDB 数据库中具有 ASPStateTempApplications 表和 ASPStateTempSessions 表。

参见:http://www.ninedns.com/asp.net/2007102514908.html
[解决办法]
引用楼主 CodeShow 的帖子:
我用cookies保存用户名和密码,
登陆后用session保存用户名,但很session随时都会丢失的,那样又要登陆了,好麻烦!
请问一下有什么好的办法解决这个问题?

[解决办法]
C# code
public static void GetUserInfo(){   HttpContext context = HttpContext.Current;      //每个页面都检查session,如果session为null,则重新获取,适用于使用Form验证的方式   if (context.Session["userinfo"] == null)    {    UserInfo userinfo = new UserInfo();    context.Session["userinfo"] = userinfo;    if (context.Request.IsAuthenticated)    {             userinfo = Func_GetUserInfo(context.User.Identity.Name);         if (userinfo.user_id.Trim().Length>0)       {        context.Session["userinfo"] = userinfo;       }       else       {        //如果用户不存在了,则注销验证信息        System.Web.Security.FormsAuthentication.SignOut();            }    }    }}
[解决办法]
对于“Session过期”的问题,我基本上是建议大家去考虑资源稍微差一些的“生产服务器”的状况,也就是说现在就去租一个网站空间然后部署一个比较好玩的asp.net应用去体验体验。如果就是用自己的单机,或者局域网里的自己的服务器做标准,很可能做出来的程序只能用在那种特定的服务器环境下,而可靠性不高。


[解决办法]

探讨
对于“Session过期”的问题,我基本上是建议大家去考虑资源稍微差一些的“生产服务器”的状况,也就是说现在就去租一个网站空间然后部署一个比较好玩的asp.net应用去体验体验。如果就是用自己的单机,或者局域网里的自己的服务器做标准,很可能做出来的程序只能用在那种特定的服务器环境下,而可靠性不高。

[解决办法]
我的也是,程序session明明设置的是20min但是有时候5分钟不操作,就Lost啦。
哎...
[解决办法]
放到Context.Items("东西")里,我们做的页面跳转都要求是server.transfer,随着页面的跳转,来回传。

仅供参考。

热点排行