打开stream式Excel文档时避免受保护的视图

我们有一个ASP.NET应用程序,可以dynamic生成Excel文档,并使用Response.WriteFile将它们stream式传输到客户端,请参阅下面的代码。 请注意,一旦文件被写入客户端,文档将被删除。 因此,服务器上没有任何文件。

但是,我的客户的用户现在已经全部升级到Office 2010,现在这些文档将在“受保护的视图”中打开。 为了编辑文档,用户必须先点击“启用编辑”。 用户认为这是不可接受的。 发生这种情况的原因是stream式文档被放置在Internet临时文件中,这被认为是“可能不安全的位置”。 而且这些地点的文件在受保护的视图中打开。 我只是希望有办法解决这个问题。

理论上,我可以将文档放置在可从客户端访问的文件夹中,并redirect到文档。 但是,这个解决scheme不是一个选项。 首先,由于文档将留在服务器上,所以其他用户可以访问该文档,这是一个问题,因为文档可能包含机密数据。 还有其他原因,为什么这不是一个可行的select。

另一个理论上的解决方法是要求所有用户禁用设置“启用受保护的视图位于可能不安全的位置的文件”。 当然,这也不是一个选项。

那么,总之,在使用下面描述的stream媒体技术的时候,有没有办法避免在“受保护的视图”中打开文档呢?

Response.Buffer = true; Response.Clear(); Response.AddHeader("Pragma", "no-cache"); Response.Expires = 0; Response.AddHeader("Content-Type", contentType); Response.AddHeader("Content-Disposition", "attachment; filename=" + proposedFilename); Response.WriteFile(dstFullPathName); Response.Flush(); Response.Close(); File.Delete(dstFullPathName); HttpContext.Current.ApplicationInstance.CompleteRequest();