2009-06-24 310 views
2

为了实现单点登录的时候,我想用户得到登出应用B的还当过用户点击应用A.注销是否有可能实现这个使用某种形式的POST请求到应用程序B?即,当用户点击注销:发送HTTP POST请求

  1. 生成现有POST请求注销应用程序的一个
  2. 产生额外的POST请求注销应用程序B的为好。
+0

你需要更清楚。即用哪种语言编程。 – Colin 2009-06-24 07:51:35

回答

0

是的,你是怎么做到这取决于你所使用的编程语言。

例如ASP.Net下,你可以使用System.Net.HttpWebRequest应用A的退出事件的处理中做出注销请求应用程序B

如果你可以发布你是用什么语言在我的工作可以给一个适当的例子

+0

它是一个J2EE应用程序。 Java语言 – Subramanian 2009-06-24 08:08:01

+0

通常一种语言我不工作或知道得很好,其他人将不得不产生一个示例 – RobV 2009-06-24 12:24:05

0

根据您的认证制度的实施,也许你可以/需要使用JavaScript,而不是从服务器端发送POST。

0

没有具体的信息,很难给出一个明确的答案,但你指的帖子,我会认为浏览器是参与。

提交表单时发生POST(未使用Javascript或类似内容)。由于表单只能有一个动作,因此它只能指向一个服务器端页面。

一种解决方法是只需应用正向注销凭据应用B一旦收到一个动作,这使得更多的机会来检查的回报。

但是,如果你在POST'ing设置为不同的页面,请参见本教程的一个IFRAME有关的黑客 - http://www.codeproject.com/KB/scripting/multiact.aspx

+0

当应用程序A将请求转发给应用程序B时,我们是否会显示应用程序B的注销页面?这意味着当用户点击注销应用程序A时,我们会向他显示应用程序B的注销页面。 – Subramanian 2009-06-24 08:11:57

1

做到这一点,最彻底的方法是检查你的SSO提供有单一签署功能。

编码这件事并部署它会使你的整体IT解决方案有点脆。

另一个建议是为SSO通常是指企业主动与你(企业)的建筑师拿这件事,并指出她在这个岗位(非常有说服力)参数:http://lists.danga.com/pipermail/yadis/2005-July/001085.html

0

如果你的登录会话被存储cookie,并且除了需要提供用于注销应用程序B的其他东西外,在javascript中清除cookie通常会破坏会话并将用户签出。

0

如何使它成为基于cookie的身份验证?同一个cookie为各种应用程序验证用户身份(在您的案例中为2个不同的应用程序)。一旦用户从一个应用程序(应用程序A)注销,会使Cookie失效(按截止日期),以便每当用户发送POST请求以休息的应用程序(应用程序B)请求未被处理。每个应用程序都需要跟踪每个POST请求以验证Cookie的Servlet。