我做了一个单点登陆系统,(其实就是参照网上别人做的,到处都能查到的一个系统,估计都有人看到过)
里面有三个分站,就相当于三个系统,有一个统一的身份认证服务器来进行登陆操作,然后成功后生成一个cookie,分站里添加一个session对象
我想知道,Session的作用域到底是什么范围,不同的分站间session的名字相同,他们能互相认么?也就是说,不同应用系统中有同名的session对象,这样session对象会冲突么????

解决方案 »

  1.   

    假设它们部署在一个网域下,那么SessionID是相同的。不过asp.net会为每一个应用程序分别管理不同的集合,当页面请求到来时把当前应用程序下此SessionID对应的所有数据拷贝给网页,然后当网页销毁时再把Session集合中的数据全都拷贝回来,不会冲突。
      

  2.   

    对于Inproc应用程序状态管理模式,Session集合里的数据随时会丢失的。因此设计程序时尽量不使用Session集合就不要使用它,最好禁用Session,这样可以提高性能。