日期:2014-05-18  浏览次数:20622 次

共享Session问题
现在有几个项目,都需要进行身份的验证,想只提供一个用户登录页面进行身份的验证,并且保存一个Session值,在后面的分项目中都各自有用到此Session值。      
    在.net里面通过添加新项目进来。访问另外个项目的时候老是提示当前应用程序没有在虚拟目录底下,但前提是我只希望有一个虚拟目录,请问这要怎么解决呢?

------解决方案--------------------
你可以给每个项目做一个LOGIN 呀,然后部署的时候统一用一个LOGIN 页呀,再搞个ProjectType来分别各个项目入口
------解决方案--------------------
Session是客户端和服务端交互用的,所以每个项目的Session都不同,无法实现共享。只能使用Cookie开共享,Cookie共享的方法只要设置Cookie的Domain就可以了,代码如下:

//写入
HttpCookie Hck = new HttpCookie( "Cookie ");
Hck[ "Value "] = "123 ";
Hck.Domain = "Cookie.com ";
Hck.Expires = DateTime.Now.AddHours(1);
this.Response.Cookies.Add(Hck);

//删除
HttpCookie Hckd = new HttpCookie( "Cookie ");
Hckd.Domain = "Cookie.com ";
Hckd.Expires = DateTime.Now;
this.Response.Cookies.Add(Hckd);

但是此方法也只能限于同一个域名根下共享,如设置为 "Cookie.com "的话可以在*.Cookie.com的域名下共享此Cookie,但是在其他域名则不能调用。并且清除Cookie的时候也需要先指定Cookie的Domain再删除。