【发布时间】:2011-07-11 07:32:43
【问题描述】:
我正在尝试通过 HTTP 从远程服务器打开 Word 文档。 Documents.Open 方法可以很好地支持这一点,因为我可以将 URL 作为文件名传递给它,然后它会从远程服务器加载它。
但是,为了获取文件,我需要将凭据发布到 URL,然后按照响应的位置字段获取文件。在将内容传递给 Word 以打开之前,如何子类化或重载 Documents 对象以执行此步骤?
忘了提——这使用基于 cookie 的身份验证,所以我需要在各种 HTTP 会话之间保留经过身份验证的 cookie。
编辑#2:或者,
如果我将获得一个完整的基于 MSXML2.XMLHTTP 的子例程,该子例程将发布身份验证,从响应中解析出 set-cookie 和位置标头,并使用它们从服务器获取文档内容,有什么办法吗?我可以将内存中的文档作为文件打开,而不是随意地将临时文件转储到文件系统中吗?通过阅读文档, Open() 仅支持文件名(或路径)。
我相信 IO.System.MemoryMappedFile 有一种 .NET 方法可以解决这个问题,但是有什么方法可以将它暴露给 COM,这样我就可以将字节流转储到一个函数中,获取一个文件句柄,然后传递它要.Open()来处理?
【问题讨论】: