在弹出窗口中停止Javascript重定向

时间:2010-07-29 17:03:42

标签: javascript asp.net twitter oauth telerik

我在我的一个应用程序中使用Telerik RadWindow控件。当用户想要为应用程序授权Twitter时,该窗口将显示Twitter的OAuth对话框。

但是,每次我显示Twitter OAuth的弹出窗口,甚至只显示普通的Twitter页面时,都会重定向整个浏览器。

当URL指向Twitter以外的站点时,控件工作正常。我想看看我是否可以阻止该重定向,或者是否有更简单的方法来完成OAuth确认。任何有关如何实现此功能的建议都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

此行为可能是由Twitter造成的。事实上,它也应该发生在许多其他网站上(Facebook和类似网站)。为了防止恶意站点窃取用户密码,登录页面会检测它是否显示在内联框架中(IFRAME元素,例如RadWindow中使用的那个),如果是,则重定向整个浏览器窗口。通过这种方式,他们可以确保在用户输入用户名和密码时不会运行任何流氓JavaScript。

答案 1 :(得分:0)

Twitter已正确创建其授权页面以防止跨站点脚本攻击,这意味着您无法将其嵌入框架或javascript弹出窗口。

不幸的是,“授权”的唯一方法是完全重定向,或者使用弹出窗口,假设您的用户允许弹出窗口。

弹出窗口的问题是,当Twitter重定向回您的应用程序时,您需要一种“关闭”它的方法。它可以完成,但它有点棘手,谁知道它是否适用于多个浏览器。最好让您的网站暂时完全重定向。