jquery - 阻止 DotNetOpenAuth 重定向 URL

标签 jquery asp.net-mvc dotnetopenauth

每当调用 RelyingParty 时,DotNetOpenAuth 都会给出重定向(如预期)。这看起来像这样......

return request.RedirectingResponse.AsActionResult();

这工作正常 - 但我想捕获它并将其放入对话框中,而不是重定向现有页面。有什么办法可以做到这一点吗?我正在尝试在 jquery 中使用带有 $.post 的 jQuery UI 对话框,并在 success 函数上加载内容 - 但它仍然会重定向。

            $("#openIdForm").submit(function () {
                $.post({
                    // Basic ajax request properties
                    url: 'user/LogOn',
                    data: $('#openIdForm').serialize(),
                    success: function (objResponse) {
                        // It's ignoring me! :( 
                        $('#dialog').load(objResponse).dialog('open');
                    }
                })
            }); 

我终于开始将许多部分整合在一起,而且我真的很喜欢 DotNetOpenAuth,因为我解决了最初的启动问题。

最佳答案

如果您的目的是在 jQuery 对话框中显示 OpenID 提供商的网站,那么答案是您不能,而且这不是 DotNetOpenAuth 的限制。这是因为大多数(实际上是所有好的)提供商都会明确突破 iframe 并重定向整个页面,以帮助培训用户抵御网络钓鱼攻击。

您可以实现的最接近的方法是使提供程序的页面出现在弹出窗口中,这是您当然可以做的事情,实际上 DotNetOpenAuth 项目模板(不仅仅是示例)演示了如何执行此操作。

不让重定向自动发生(当然可能)是一件棘手的事情,因为你想要什么?一个网址?这并不总是有效,因为某些 OpenID 消息对于 URL 来说太长,并且必须将自发布 HTML 表单发送到浏览器才能发送整个消息,因此如果您接管这部分流程,则必须做好准备。

关于jquery - 阻止 DotNetOpenAuth 重定向 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2580325/

相关文章:

javascript - 使用 jquery ajax 访问 php 脚本返回的 JSON

javascript - jQuery Ajax 问题 - 仅当结果返回时执行的函数

javascript - 用jquery高亮textarea边框一段时间

c# - 条件 IQueryable 选择 (MVC .NET EF)

asp.net-mvc-4 - MVC4/DotNetOpenAuth 中的自定义 OAuth 客户端 - 缺少访问 token key

c# - 使用 DotnetopenAuth 时报告和记录错误

javascript - jquery - AnimatedModal,获取单击元素的 data-*

c# - 从方法外部获取到操作的路径

c# - 使用 IEnumerable<Interface> 类型参数发布到 Web API 操作

c# - DotNetOpenAuth2 中的单个 AuthZ/AuthN 端点