MVC中怎么实现单点登陆问题
要的效果是后一个登陆的把前一个登陆的踢掉,想着用application来存储用户信息,求个具体的方法或思路 MVC
[解决办法]
第一个人来登录
生成一个guid作为标志
application[用户ID] = 实体类;(实体类里记录 guid等信息)
application[guid] = 用户ID
然后把 guid 保存在cookie里。
又有人登录了,
判断cookie里有没有 guid
{
//没有cookie,没有登录过
}
else
{
//有cookie,登录过
}
if application[用户ID] 有了
{
application[guid] = null
}
然后在重新建立一个。
大概就是这样吧,判断的地方复杂一点,还没想仔细。
[解决办法]
做单点登录要使用Session和Cookie相结合,而且还有考虑到跨域、跨浏览器的问题,可以说没有经验的话,做起来非常的复杂,确切的说,不会成功。因为跨域、跨浏览器的原因,Session和Cookie往外是非常难获取!建议不是非常有必要,最好用平常的登录就够用了。
[解决办法]
当用户登陆的时候生产一个随机GUID写入Cookie和Session中。在当前用户在线的整个周期,这个GUID不变。
当在次登陆时,重新生成GUID,再次写入。而其他登陆的用户因为GUID变更了,所以就只能退出登陆。
用Cache + xml 来维护一个全局用户名与GUID对应的字典。
这样就可以实现单点登陆了。
[解决办法]