【发布时间】:2014-07-07 13:45:39
【问题描述】:
我们的仪表板应用程序链接到各种第 3 方系统,它使用基于表单的身份验证。当经过身份验证的用户单击第 3 方系统的链接时,我使用 User.Identity.Name 获取身份并形成一个 POST 请求,以对 那个 特定系统进行 进一步 身份验证。当从我们的仪表板单击其链接时,每个系统都会在新选项卡中打开 - 仪表板应用程序在前一个选项卡中保持打开状态。登录正常。
这些系统有自己的退出链接。我尝试以编程方式将 GET 和 POST 请求发送到注销 url - 从仪表板选项卡,但这不起作用。用户已成功退出仪表板应用,但仍可继续从其他选项卡访问 3rd 方系统链接。
如果我知道它的登出网址,我该如何从第 3 方系统中登出?
【问题讨论】:
-
仍在等待评论/答案! :) 我需要重新表述这个问题吗?
-
这很大程度上取决于“第三方系统”,您是否尝试在调用 url 时调试响应?你得到什么回应?
-
您只需将用户名发布到他们的系统,就可以在那里进行身份验证?不是您问题的直接答案,但听起来像是一个巨大的安全漏洞。我希望听起来只是这样,并且实施是安全的。
-
@BenjaminPaul 是的,响应是 该特定系统登录页面的 HTML。如果我将第 3 方的注销 url 复制粘贴到我们的仪表板应用程序的选项卡中,则用户将从 that 系统中注销 - 该系统在另一个选项卡中打开。但显然这不是一个实际的解决方案。如果我通过 HttpWebRequest 向注销 url 发送 GET 请求,我会得到第 3 方登录页面的 HTML 作为响应,但我仍然可以浏览第 3 方系统。
-
@greatbear302:您只需返回一个包含 iframe 列表的页面,其中每个 iframe 都指向一个应该注销某个应用程序的页面。浏览器拾取页面,跟踪所有 iframe,并一一退出所有应用程序。
标签: c# session authentication single-sign-on