没做过c#后台,只弄过php的,估计你生成的session名是固定的,要把session名生成随机的,推出的时候在进行清理就好了。

解决方案 »

  1.   

    我需要用到这个session,因为要在所有程序上调用这个session,所以将其生成为固定的。有没其他办法呢?我能指定删除某个session名吗?
      

  2.   

    Session是可以很灵活的操作的,必须可以Remove和Clear的,看看你这里是不是有其他的问题
      

  3.   

    Remove和clear都可以正常执行,没有什么问题,我是觉得本地的cookie将上个用户的登陆信息保存了,才会出现这样一个状况的!我想知道,你们一般会怎么用session来区分登陆用户是属于哪个角色的?
      

  4.   

    我需要用到这个session,因为要在所有程序上调用这个session,所以将其生成为固定的。有没其他办法呢?我能指定删除某个session名吗?c#操作session我不会啊,你自己搜一下吧!应该可以的。
      

  5.   

    Remove和clear都可以正常执行,没有什么问题,我是觉得本地的cookie将上个用户的登陆信息保存了,才会出现这样一个状况的!我想知道,你们一般会怎么用session来区分登陆用户是属于哪个角色的?我只用session记录用户登录的id,通过数据库来保存用户信息
      

  6.   

    Remove和clear都可以正常执行,没有什么问题,我是觉得本地的cookie将上个用户的登陆信息保存了,才会出现这样一个状况的!我想知道,你们一般会怎么用session来区分登陆用户是属于哪个角色的?我只用session记录用户登录的id,通过数据库来保存用户信息
    搜过了,没找到我要的,挺诡异的。能不能说下你用session记录用户登陆id的代码,我类比下。
      

  7.   

    想要根据用户所属的不同角色,呈现不同的页面?还是删除session信息?
      

  8.   

    看你User貌似继承自System.Security.Principal.IPrincipal,但这个IsInRole返回的是bool值至于清除对话HttpContext.Current.Session.Clear();
    HttpContext.Current.Session.Abandon();
      

  9.   

    我很想知道你为什么Session不是存User...而是存IsInRole的结果
    还有关闭连接,是什么意思???
    关闭浏览器再打开,直接就是一个全新的session
    在浏览器内把标签页关闭,再在这个浏览器内新开标签打开网页,session不变
      

  10.   

    Remove和clear都可以正常执行,没有什么问题,我是觉得本地的cookie将上个用户的登陆信息保存了,才会出现这样一个状况的!我想知道,你们一般会怎么用session来区分登陆用户是属于哪个角色的?
    确实,一般来说用Session直接存储定义个用户信息的实体,如果涉及到角色信息,那就在设计对应实体,尽量是能够在登录时通过数据库进行查询得到这些基本信息(因为他们不是经常变动),所以这样在页面跳转等等时,仅需要执行权限判断的代码,总之就是,需要这些基本信息的地方,可以直接从Session里面取。
    至于System.Security.Principal.IPrincipal,就不太清楚了,没研究过这样的,我当初所涉及的角色类,都是在数据库保存角色信息和判断的,没这么使用过User的东西
      

  11.   

    是的,我是要判断这个user是否属于角色operator。
    “在浏览器内把标签页关闭,再在这个浏览器内新开标签打开网页,session不变”,我重新执行这个程序,有弄了个session.clear(),这样之后也还不变吗?觉得应该是浏览器自动cookie保存了以便下次登陆的。如果是这样,那我这个网站发布前,应该做一些什么相应的措施呢?如果直接Session是存User,我后面还要一个判断呀,觉得IsInRole刚好能判断,我保存它就行了。事实上,我在网上找的也只是看到这种方法,你有其他方法么?
      

  12.   

    Session["IsUserInRoleOperator"]=NULL 肯定清的掉。。
      

  13.   

    Remove和clear都可以正常执行,没有什么问题,我是觉得本地的cookie将上个用户的登陆信息保存了,才会出现这样一个状况的!我想知道,你们一般会怎么用session来区分登陆用户是属于哪个角色的?
    确实,一般来说用Session直接存储定义个用户信息的实体,如果涉及到角色信息,那就在设计对应实体,尽量是能够在登录时通过数据库进行查询得到这些基本信息(因为他们不是经常变动),所以这样在页面跳转等等时,仅需要执行权限判断的代码,总之就是,需要这些基本信息的地方,可以直接从Session里面取。
    至于System.Security.Principal.IPrincipal,就不太清楚了,没研究过这样的,我当初所涉及的角色类,都是在数据库保存角色信息和判断的,没这么使用过User的东西

    哦,好的!我再看看,谢谢呀!
      

  14.   

    <?php 
    session_start(); //使用session存储用户信息
    if(isset($_POST["username"]))
    {
    $ss_user_id="";

    //利用User类的IsValid()方法判断所输入的用户名和口令是否正确
    require_once("user/UserClass.php");
    $user=new User();
    //如果正确,转到系统首页
    if($user->IsValid($_POST["username"],$_POST["password"]))
    {
    echo "<script language='javascript'>";
    echo " location='index.html';";
    echo "</script>";
    }
    //如果不正确,转到登陆页面
    else
    {
    echo "<script language='javascript'>";
    echo " alert('用户名或密码错误');";
      echo "</script>";
    }
    }
    ?>$_SESSION["ss_user_id"]=$db->mUserArray[0]->UserId;//User类只操作了这一次session
      

  15.   

    你把session[”IsUserInRoleOperator"]赋值一个变量,这个变量要是全局变量
      

  16.   

    额,为啥呢?我是要将IsInRole的结果存放在此session中,以后要用。现在问题是IsInRole跟我登陆的用户信息不同步,不知为什么。
      

  17.   

    最终结果要呈现不同的页面,现在的问题是,我用本机的浏览器使用两个不同角色的用户登陆,结果不是预料之内的,会出现多次不一样的结果,比如角色1不能看到的页面有时能看到。我觉得这是session没清除或者是本地保存了cookie的问题,不知怎么解决。
      

  18.   

    session 是唯一的 有唯一值
    session_id 存库
    每次加载前判断
    思路如此,业务自理
      

  19.   

    你看下两次登录的赋值过程,是不是,获取用户信息的时间晚于获取session的时间
      

  20.   

    退出登陆最好多用几种代码Session["Your_User_Session"]=null;
    Session.Clear();
    Session.Abandon();我一般是上面三行代码同时存在然后基于角色的权限控制RBAC,对于资源与角色的对应关系应该是走Cache,因为这个变动很小,然后用户登陆后,可以取到相应的用户信息以及拥有的角色集合,然后到实际页面时判断该用户是否有访问该资源的角色,这时候都不走数据库的
      

  21.   

    估计是这个原因,很奇怪,我用的登陆模块是.net 自带的,登陆进去后,保存的是前一个用户的信息,只好把他移到另一个跳转页面。
      

  22.   

    是这样。session是唯一的,挺好使的。
      

  23.   

    试试设定Session位置,不要在Cookie里面存放Session,设成InProcess试试。