在Classic ASP中调用外部注销

时间:2013-03-20 18:11:24

标签: ajax json iframe asp-classic backend

基本上我正在寻找的是这样的东西;

我在一个调用.ASPX文件的经典asp网站上有一个链接,该文件又从Sessions变量中设置了一堆用户凭据,然后重定向到第三方供应商托管网站,脏我知道但没有什么可以现在就完成它。

所以这个过程是; 1.加载带有.ASPX页面链接的经典asp页面 2.单击链接,发送到.aspx页面 3. .ASPX将所需数据和.Send()设置为第三方供应商应用程序

问题是,如果用户没有“注销”第三方网站并以新用户名返回,则第一个用户名凭据保持设置状态。我想要做的是在.asp页面上,然后用户点击进入第三方供应商应用程序,在后台调用供应商应用程序注销页面。我正在考虑使用iFrame,但iFrame只显示注销页面,它实际上不会执行与之关联的代码。

非常感谢任何帮助, 尼克G

3 个答案:

答案 0 :(得分:0)

如果您的服务器端代码正确,您的Iframe方法应该有效。但要记住两件事。

首先,会话变量特定于域,因此如果您的页面可通过多个域使用,并且Iframe的src属性与用户访问您的站点的那个属性不同,那么您的会话数据将不会认可。如果一个网址包含“www”而另一个网址不包含 - 我甚至从未测试过这个

,这甚至可能适用

其次,经典ASP文件和ASP.net文件不能共享会话变量,每组页面需要单独的变量集。如果你需要同步两个集合,常见的黑客就是使用0px xpx iframe,例如

<iframe height="0" width="0" src="dotnetpage.aspx?userid=<%=Session("userid")&loggedin=<%=Session("loggedin")" />

显然,dotnetpage.aspx将包含将查询字符串值设置为会话变量的代码,并且您可以让一个经典页面从.net页面接收查询字符串

答案 1 :(得分:0)

无论您在这些方面提出什么解决方案,只要第三方供应商意识到他们的网站存在安全漏洞并决定关闭它,就会有效。

例如,应该从不能够通过在其页面中注入隐藏的iframe来将某人从另一个系统中注销。这是CSRF漏洞的一种形式,表明其他站点的安全状况不稳定。

我当然会考虑另一种方法。

答案 2 :(得分:0)

我找到了一个更好的方法与经典的asp,只是包括url作为一个,它似乎工作正常。