现在想到个办法就是在ABC.com里的用户名和密码用url传给DEF.com中一个登录页面自动登录,然后再转到ABC.com!

解决方案 »

  1.   

    请问N028:能说的具体点嘛? 我是用的form验证!
      

  2.   

    http://www.dlog.cn/html/diary/showlog.vm?sid=1564&log_id=6789
      

  3.   

    这个问题是一个单点登陆的实现:首先有这样一个概念SSO概念:SSO的一种偏向技术的说法:用户只需登陆一次,就可使用多个SSO   enable的应用系统。 (1)、单一的登陆点。理想的情况是用户通过任何应用系统都能进行SSO,这对于基于Web的系统是可行的。这种单一的登陆点在整个系统的设计中是唯一认证用户的地方,由登陆点将SSO   token(针对不同的C/S,B/S应用可能还需要传递用户名,口令)传递给应用系统,应用系统利用SSO   token来进行用户已认证的验证。我们将这个单一的登陆点称为SSO   Entry。 (2)、SSO   enable意味着对应用系统的修改不可避免。并不是任何系统都能够使用SSO,只有那些符合SSO规范,使用SSO   API的应用系统才具有SSO的功能。简单地说就是要修改已有的应用系统,屏蔽已有的应用系统的用户认证模块,使用系统提供的SSO   API来验证用户,以及对用户的操作进行授权。 (3)、需要统一的认证,权限信息库。通常,认证与授权管理模块以一种应用专有的方式实现,系统的授权模型、认证,授权信息存贮结构与访问控制逻辑与应用的业务逻辑之间耦合紧密。这种设计与实现方式的缺点是显而易见的:由于认证、授权模块与应用逻辑之间的紧耦合使得认证、授权模块很难进行扩展与维护;认证、授权模块的设计与编码需要很大的工作量,而且很难在不同的应用系统之间共享与重用。这也是越来越多企业应用需要SSO的原因之一。 SSO要求有统一的认证,权限存放库。但现实中,有的系统无法使用外部的认证,授权信息库,所以就需要在应用系统和Portal   Server之间进行认证,同时进行授权信息的数据同步。 登录 
    1. 打开A网站进行登录; 
    2. 检测Login服务器是否可用; 
    3. 如果Login服务器可用,检测发现Login服务器Session未创建; 
    4. 重定向到A网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据; 
    5. 得到的Key是1,说明Login服务器Session未创建,在A网站创建Session,登录完成后使用 <script> 访问Login服务器上的页面创建Session并记录网站名和网站登出页面地址; 
    6. 打开B网站登录,发现没有登录,检测Login服务器是否可用; 
    7. 如果Login服务器可用,检测发现Login服务器Session已经创建并记录网站名和网站登出页面地址; 
    8. 重定向到B网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据; 
    9. 得到的Key不是1,说明Login服务器Session已经创建,根据Key到数据库进行验证,验证通过后在B网站创建Session。 
    登出 
    1. 每个网站都有登出按钮,点击按钮后先清空本地Session; 
    2. 然后检测Login服务器是否可用; 
    3. 可用的话跳转到Login服务器的登出页面; 
    4. 根据Session中存储的已登录网站名和登出页面地址,生成 <img> 指向各个网站的登出页面; 
    5. 登出成功后登出页面显示图片(返回图片流),如果登出失败(页面不能访问)则显示本地登出失败图片。 特点 
    1. Login服务器就算Down了各个网站也能分别登录和登出; 
    2. 巧妙使用临时GUID来做验证令牌; 
    3. 巧妙使用script和img的src来访问登录登出页面创建和撤销Session。 
      

  4.   

    楼主去这个地方下载例子,注意结贴
    http://topic.csdn.net/t/20061011/13/5074722.html 
      

  5.   

    我现在用的是。net form身份认证的,如何生成两个网站的票据呢?最好是不更改现在网站的结构~
      

  6.   

    .net 怎么实现有人能说说嘛?
      

  7.   

    .net 怎么实现呢? 我是用的form身份认证~  生成票据的!