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

时间:2013-01-17 16:25:59

标签: asp.net excel office-2010

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

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

理论上,我可以将文档放在可从客户端访问的文件夹中,然后重定向到文档。 但是,此解决方案不是一种选择。首先,由于文档将留在服务器上,因此其他用户可以访问它,这是一个问题,因为文档可能包含机密数据。 还有其他原因导致这不是一个可用的选项。

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

那么,简而言之,在使用下面描述的流媒体技术时,无论如何都要避免在“受保护的视图”中打开文档?

        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();

0 个答案:

没有答案