最近一段时间,又有客户要做sso单点登录。
我以前设计了专门用于点击登录的页面,web.config里面放置可修改的,验证中心的地址。这样如果很多客户都用同一种单点登录请求方式的时候,不同的客户仅仅修改web.config里面的验证中心的地址就可以了。
但是计划永远也赶不上变化。用户的需求永远是多样的,导致程序不能满足需求,这样就得不断的为每个客户不能得sso接口,来修改程序。
于是,我想如果现在的程序不变,单独写一个sso单点登录页面。可这样我遇到了一个问题,就是如果部署2个虚拟目录(或网站)的话,就遇到了session的跨web的情况了。
在网上看到下面这篇文章:
这里我们把原来的程序称为A程序,新建的这个程序为B程序。
我新建了一个web工程,(由于测试所以未调用验证中心)。
其功能为:建立用户session,并跳转的 A程序的管理后台。
我把B程序里面的页面放到相应的A程序下。B程序生成的dll文件,放A程序的bin目录下。
(说白了,就是把B程序拷贝到A程序里面,但不替换原来的web.config、Global.asax等)
注意:这样处理后,B程序调用的web.config就和A程序调用的web.config是同样的一个了。大家在设计B程序的时候,一点要注意。
到iis里面我们测试一下吧,直接浏览B程序里面的页面,我们看到直接进入到A程序的后台管理了。跳过了A程序的登录页面。
成功。