当前位置: 代码迷 >> ASP.NET >> WEB session 有关问题
  详细解决方案

WEB session 有关问题

热度:1410   发布时间:2013-02-25 00:00:00
WEB session 问题
需求如下,
web程序A要嵌入WEB程序B的一个页面b。在这个页面上有些功能,这些功能需要验证身份。也就是A嵌入这个

页面的时候,需要登录B程序。但是不可能让用户去点击登录。登录A以后,可以直接打开页面b,然后直接

操作。B程序的登录密码是加密且是动态的。先要取得一个seed值。然后根据这个值和本身的用户密码组成

加密密码。所以登录至少发两次请求。登录B程序要自动登录,为了不暴露明文密码,登录的过程肯定是在A

程序服务端完成的。这样就有一个问题,一个客户端(浏览器)和一个服务端只能有一个sessionid。当显

示页面b的时候,需要先在A的服务端完成登录。然后显示b页面,那么这个时候对于B程序来说。登录时,A

的服务端成了客户端(浏览器),sessioniid存在A的服务端。但是显示页面之后,真正的客户端(浏览器

)是前段页面。那么前端页面第一次直接访问程序B的时候,产生了一个新的session。因此肯定身份验证通

不过。

想到的方法是,指定浏览器访问B时的请求的sessionid,但是要如何做呢。session最好不要显示在地址栏

里。
------解决方案--------------------------------------------------------
这种是跨域登录的吧,百度一下吧
------解决方案--------------------------------------------------------
这就是单点登录
有一种方式基本p3p,楼主可以查一下
------解决方案--------------------------------------------------------
可以简单地这样做:

A先从服务器端把数据传给SSO并获得一个授权号,然后它的这个引导页面把界面重定向给SSO的引导页面(参数上带上授权号),然后SSO这个页面来询问用户“是否真的要转到B页面”,如果用户确认、或者假设用户早已经确认过的话就转向B页面(页面上再分配一个用于读取数据的授权号),B页面的后台服务器端再读取这个授权号对应的信息(从其它的IP是不行的)。
  相关解决方案