【问题标题】:file upload in flex when IIS is set to 'integrated windows authentication'当 IIS 设置为“集成 Windows 身份验证”时在 flex 中上传文件
【发布时间】:2009-12-08 18:11:58
【问题描述】:

我有一个允许用户上传文件的 flex 应用程序。 flex 端使用 FileReference.upload 方法转到处理上传的 .aspx 页面。当我将 IIS 设置为集成 Windows 身份验证时,它只会间歇性地工作。也就是说,出于测试目的,我编写了一个单独的 aspx 页面来上传文件,这总是有效的....不过,我想在漂亮的 flex 应用程序中利用文件导入,而不是启动一个新的用于文件上传的网页。

在查看 IIS 日志时,我对正在发生的事情有一个假设,并想知道是否有人完全理解为什么它可能只是间歇性地工作并且可以确认或否认这一点:

  1. Flex 的 FileReference 上传胆量会在客户端执行任何操作,然后向我的 .aspx 页面发起 POST 请求。失败时,IIS 日志会指出 IE 未通过凭据,因此拒绝请求,然后发送 401 响应。
  2. 即使我正在侦听 HTTP 状态代码(闪存错误?),我也没有在 flex 端收到此 401 响应。
  3. 以某种方式立即发出一个新请求以再次执行上传(这不是我的代码)。我通过查看 IIS lgos 来推断这一点,它在前一个 POST 之后显示了第二个 POST,只是这次发送了用户凭据,但更重要的是这次用户上传的文件没有上传。我通过 IIS 日志显示已发布 0 个字节的事实来推断这一点,而之前的 401 请求显示已发布大量字节。

在它确实工作的时候,会发生什么是 FileReference 发出的第一个 HTTP POST 请求恰好发送 Windows 凭据,因此客户端不会受到挑战。

在 IIS 中使用集成身份验证时,任何人都可以就如何让 FileReference.upload 持续工作提供任何想法吗?

克里斯

【问题讨论】:

    标签: asp.net apache-flex iis-6 file-upload windows-authentication


    【解决方案1】:

    您可以通过始终将 FileReference.upload 上传到不安全的 aspx 页面来解决该问题。在上传之前在 remoting/http/webservice 中使用单独的调用来向服务器指示您要上传文件。让服务器将随机令牌传回给客户端(并将令牌缓存在内存中)。然后将令牌作为 GET 变量与上传 url 一起发送。您可以在服务器上验证令牌并通过令牌应用安全性。

    这是一个 hacky 解决方法,但有效。我们之前做过类似的问题,QuickTime 没有使用相同的会话凭据发出请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-02
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多