网站间传值
前提:
网站A使用 java开发
网站B使用 asp.net开发
并且2个网站部署在不同的服务器上
求问:
网站A上挂一个网站B的链接,用户在网站A上点击该链接进入网站B时,需要把A上的已登录信息传递给B
有什么办法吗?
说明:
不能采用 url?xx=xx 的方式
------解决方案--------------------统一身份验证呗。
百度一下。有现成的实例。
------解决方案--------------------不能通过URL,就只能是cookie,没有第二种办法的。一般,不建议直接链接,而要把过程“复杂”一点:
(1)点击链接后,A用ajax向B网站请求一次登录验证,即把jsonp实现会话信息的传递,为了防止被拦截,需要A先向B请求,B发A一次挑战码,A响应后才表明A是合法的客户,然后A再把登录传递给B,B通过后,发给A一个令牌,且产生一个cookie来保存。其实,只要该令牌是短期有效的,比如10秒内,那基本上不会有安全问题的。
(2)验证通过后再跳转。
------解决方案--------------------A站jsonp传递一段加密过的字符串给B,B拿到字符串去A的webservice验证,获取用户信息保存到B的session或者cookies中实现登录,然后页面跳转到B。
------解决方案--------------------楼上各位,楼主说的是
登陆信息
所以用统一身份验证来解决最好了:)
------解决方案--------------------我烤,5楼的兄弟这想法好新奇哦,以后有机会试下,理论上是可行的
------解决方案--------------------数字安全认证
------解决方案--------------------
这种网站是违背了单点登录的真正意思的。
A不能登录B,而是要用户到B上去登录。如果A可以捕获用户输入的账号密码,那么这就违背了单点登录的设计。
------解决方案--------------------另外,所谓“A传登录加密的信息给B,然后B返回xxxx”之类的,虽然看起来是去努力理解单点登录,但是就因为随随便便传送了“A的登录给B”这显然是使得整个设计变成混乱的了。
实际上单点登录系统必须是独立的网站,不与任何权利低一级的业务网站集成在一起。其关键就是——防止某个网站的程序员去偷盗用户的密码。
------解决方案--------------------webservice
------解决方案--------------------POST把~~~~~
------解决方案--------------------其实可以不用考虑语言html post传参 做一下加密