您的位置:首页 > 编程语言 > ASP

在ASP.NET中怎么用SESSION判断用户是否登录? 以及Session登陆后丢失的解决办法

2008-04-11 20:46 881 查看
http://blog.csdn.net/kgdiwss/archive/2005/03/04/310724.aspx

代码很简单的,我把我平时写过的贴出来给大家看看:

if (bResult == true) //登录的用户名和密码正确
{
//保存登录的用户名
Session["LoginUser"] = FormatString.Replace(txtLoginUser.Text); //这里就是给session赋值了.我对登录用户进行了一些安全处理
//转到管理首页
Response.Redirect("Admin_Index.Aspx");
}
else
{
lblErr.Text = Message.Show("用户名或密码错误!");
ShowValidate(); //重新显示验证码
}

那如何在页面判断是否登录呢?代码更简单,如下:
if(Session["LoginUser"] == null) //上面Session名字用LoginUser,这里的名字要和上面的相同,可以随便改,保持一致就行了,注意:Session["LoginUser"]后面,没有ToString()哦,你要是加上的话,就会出错了.
{
Response.Redirect("Login.Aspx"); //如果Session为空,则转到登陆页.
}

Session登陆后丢失的解决办法。

最近做网站后台的时候,登陆后发现刷新页面时Session会丢失,过几秒钟也会自然丢失,查了资料后发现可以这样解决:

1。打开web.config文件,设置如下:

<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="StateServer" //就是修改这里为“StateServer”
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="30"
/>

2。打开“控制面板--管理工具--服务”,找到ASP.NET State Service这个服务,将其设为自动启动。

这样以后再刷新页面就不会丢失Session了,哈哈!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐