具有集成安全性的跨域POST

时间:2011-08-04 01:56:59

标签: javascript asp.net ajax cross-domain integrated-security

我运行了一个站点A,我希望能够将数据发布到站点B,站点B托管在不同的子域上。现在我可以完全访问A,但根本无法修改B.

我的要求是:

  • 支持文件上传
  • 不会刷新POST上的浏览器
  • 使用Windows集成安全性
  • 适用于IE 7/8(不需要支持任何其他浏览器)

实现这一目标的最佳方法是什么?

我尝试了什么:

理想情况下,这可以在简单的AJAX调用中完成。但是,当前的标准不支持发送二进制数据(XMLHttpRequest Level 2标准支持,但尚未在IE中实现)。

所以接下来最好的事情是POST到隐藏的<iframe>元素。现在我已经尝试过了,但站点B上的服务器不会接受这些数据。我查看了请求,我发现的唯一差异是引用URL和集成身份验证。引用URL可能必须是欺骗性的,这种方法无法实现。此外,由于某种原因,身份验证尚未协商。我不是百分之百确定原因。

思路:

我正在考虑在我运行的服务器(站点A)上创建一个代理页面,该页面将请求转发到站点B.站点A也使用集成安全性。我没有看到任何错误,但我不确定这是否是最好的方法。如果我只是转发请求,是否会出现任何身份验证问题?

1 个答案:

答案 0 :(得分:2)

使用代理似乎是唯一可以在您的情况下工作的东西。如果您想要获取请求,则可以使用JSONP完成,前提是服务器支持JSONP。要使<iframe>黑客工作,服务器应将标头发送为

Access-Control-Allow-Origin:* 

与你不同。 所以使用代理似乎是解决方案