我想实现通过login画面登陆后,取得用户的权限,保存在session里,之后只要权限够就可以直接通过输入url访问想要到的页面,但是现在登陆后,早原来的ie中可以访问,在新打开ie里输入url之后访问,就取不到session中内容.
想请教一下,怎样才能实现这样的需求,一次登陆后就可以记住登陆的用户名和权限,以后随时可以使用(不使用cookie)

解决方案 »

  1.   

    SESSION不能在新窗口中使用..这是IE一直存在的BUG
    如果你想跨页面实现数据传递..只能用COOKIES.如果有高手知道其它的方法请指点一下..我知道创智VOD这个弹出页面能传递值..但不知道用什么方法..
      

  2.   

    如果存数据库里,我就可以每次使用用户名到数据库去取权限了,没有必要在保存了.(我使用的是form认证的.)
      

  3.   

    用DateReader打开数据库
    if (dr.Read())
    {
    Session["a"] = dr["user"];//保存SESSION值,
    Response.Redirect("a.aspx");
    }
    else
    {
     Response.Write("<script>alert('用户名密码出错!');</script>");
    }
    在你想要的页面的page_load里写if (Session["a"] == null)
            {
                Response.Redirect("a.aspx");
    Response.End();
            }
      

  4.   

    要取权限的话,就取数据库用户的权限字段
    Session["b"] = dr["字段名"];//保存SESSION B的值,
      

  5.   

    TO:Cnaspnet() 
    我就是在login画面里访问数据库取到用户的权限,存在session中,页面不关闭,之后在新的ie中输入url打开页面,但是这是取session中的用户权限是空.我想要的结果是login画面中已经存在seeion的权限.请问怎么实现,不用session也可以,但不能用cookie.
      

  6.   

    唉,楼主啊,比如你在A界面中登陆的,在B,C......等页面加载时,判断session是否为空,不就行了.为空就返回A界面登陆,不为空且是正确的id,就可执行以后的业务.....
      

  7.   

    看不懂你在说什么?你把值放SESSION中是有一定时间的。难道你放里面一年也可以重新打开啊呀