在ASP.NET中用SESSION判断用户是否登录

来源:互联网 发布:aftereffects mac破解 编辑:程序博客网 时间:2024/06/13 01:41
 

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有可能会丢失的,解决办法:
       

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了.