本帖最后由 huangyu1573 于 2010-05-10 10:03:54 编辑

解决方案 »

  1.   

    Session["admin"]   你在那里给它赋值了?
      

  2.   

    我也
    Session.RemoveAll();
    你都已经吧session清空了,判断肯定是空啊
      

  3.   


    他代码的意思应该是 如果 session 没有值 就直接跳到 index页面了
      

  4.   

    登陆login.aspx.cs的代码     Session["admin"] = "123456789";
         Response.Redirect("admin.aspx");
    后台主页面admin.aspx.cs的代码  if (Session["admin"] == null || Session["admin"].ToString().Trim() == "")
      {
      Session.RemoveAll();
      Response.Redirect("/index.aspx");
      }
    还不全么??-_-!
      

  5.   

    Session["admin"] = "123456789";
    你现在Session里有123456789
     if (Session["admin"] == 123456789)
      {
      Session.RemoveAll();
      Response.Redirect("/index.aspx");
      }
    应该是这样吧?
    你刚刚==null他肯定进不到这里面呀
      

  6.   

    登陆login.aspx.cs的代码  Session["admin"] = "123456789";
      Response.Redirect("admin.aspx");
    后台主页面admin.aspx.cs的代码  if (Session["admin"] == null || Session["admin"].ToString().Trim() == "")
      {
      Session.RemoveAll();
      Response.Redirect("/index.aspx");
      }代码再贴一次求助。
      

  7.   

    把admin.aspx 的 page load事件完整贴出来吧
      

  8.   

    1.在web.config里看设置的session超时时间是多少,VS2008默认的是20分钟.
    2.就是代码逻辑判断了.你先要确定是否保存了session的值,然后是你那个
      if先把Session["admin"].ToString().Trim() == ""去掉再试试
      

  9.   

    吧admin 那个页面加载的方法都贴出来 看下
      

  10.   

    不明白,都已经 判断Session["admin"] == null || Session["admin"].ToString().Trim() == "" 了,怎么还Session.RemoveAll();
      

  11.   

    lz你为什么不把 Response.Redirect("/index.aspx");改成Response.write(“js跳转页面代码”);
    因为Response.Redirect("/index.aspx");是不带请求的跳转!
      

  12.   

    你设置session超时时间是多少?是不是超时导致的?
      

  13.   

    小弟愚见
    这个
    if (Session["admin"] == null || Session["admin"].ToString().Trim() == "")
      {
      Session.RemoveAll();
      Response.Redirect("/index.aspx");
      }是你admin.aspx.cs的page_load事件里的吧  你把这段代码去掉 然后获取下session 输出看看是什么 如果输出结果是你存的那个123456789 那就说明你跳转过来的时候session是有值的 那肯定是你if{}里的东西有问题 
    而且 你从login中设了一个session并跳到admin 在admin的page_load中有判断session是否有值 无值则跳回index 我不太清楚你这个地方的思路是啥~~~
    小弟愚见~
      

  14.   

    。!我的问题很简单。
    就是我有个登陆界面,我登陆后,确定Session是有值的。然后我想跳转到admin.aspx但是跳转到admin.aspx的页面的时候,我想判断一下Session是不是为空,因此admin.aspx.cs才有以下代码:if (Session["admin"] == null || Session["admin"].ToString().Trim() == "")
      {
      Session.RemoveAll();
      Response.Redirect("/index.aspx");
      }
    以上代码就是admin.aspx.cs中判断是否得到了Session
    但是,我测试Session明明是有的,不为空,有值。
    但是if语句好像出了错一样执行了Response.Redirect("/index.aspx");就是想问问
    if (Session["admin"] == null || Session["admin"].ToString().Trim() == "")
    这句是不是哪里错了?有没有更好的写法?
      

  15.   

    给改成Session["admin"] == null || Session["admin]== "" 试试,我也好像碰到过类似的问题
      

  16.   

    如果之前没有对这个session给值 的话,“Session["admin"].ToString().Trim() == "")”这句应该会报错的啊!
      

  17.   

    如果在执行 if (Session["admin"] == null || Session["admin"].ToString().Trim() == "") 之前跟踪了Session["admin"]的值确实为123456789,那就见鬼了,建议楼主重启。
      

  18.   

    问题已解决说出来大家别丢砖头。我也是很不明白。我把Session["admin"] ,换了个名字,比如我把Session["admin"] 换成Session["kkk"],竟然OK了,运行一点也没问题。
    声明我其他页面从来没用过["admin"]。 
    这是我同事说的,他说有时候很奇怪,Session["名字长一点"]就会错,有时候Session["加几个数字"]也出错。这些都是我那个同事的经验总结,无法解析。知道或者遇到过这样的问题的朋友,麻烦说说这是为什么,造福后代子孙
      

  19.   

    不可能吧,肯定是在哪个地方清除了Session["admin"]
      

  20.   

    代码应该没有贴全吧,什么错误没有说。  Response.Redirect("/index.aspx");
    这个样语句不能放在try{}catch{}中,不然的话一定会捕捉到错误