c# - IIS 虚拟文件夹 URL 加密

标签 c# asp.net iis iis-6 virtual-directory

我们有一个 c# asp.net web 应用程序,除其他外,它允许用户下载以前上传的文件,如 PDF、Word 文档等。asp.net 应用程序通过 IIS6 服务器提供,文件资源是实时的在不同的服务器上。

当用户请求文件时(即单击网络表单上的按钮),我们将文件流式传输回他们的浏览器,适本地更改 ContentType。

这似乎是避免沿着 IIS 虚拟文件夹路径提供文件资源的好方法 - 由于用户可能破解 URL,我们对此感到担忧。即使用类似 https://mydomain/myresource/clientid/myreport.docx 的 URL ,精明的用户可以很好地猜测替代的 cvlientid 和文档名称。

将 Word 文档流式传输到浏览器的问题在于,当浏览器将其丢给 Word 时,Word 将其视为一个全新的文档,这意味着原始文档的属性和边距信息会丢失。

我们的用户将元数据信息存储在 Word 文档属性中,因此他们无法接受这种解决方案。

通过 IIS 虚拟文件夹提供服务解决了该问题,但引入了 URL 安全问题。

所以我的问题是......

有谁知道我们如何使用 IIS 虚拟文件夹进行 URL 加密/解密(或混淆)?
或者有谁知道有任何开源项目可以做类似的工作。
或者有人对如何使用加密 URL 编写我们自己的虚拟文件夹实现有任何建议吗?

非常感谢。

附言。我们的网络应用程序通过 https 交付

最佳答案

抱歉各位,在我的问题中,我做了一些不正确的假设。

我想做的是在将属性从服务器(使用 Response.TransmitFile 或通过虚拟文件夹)传送到客户端浏览器时保留存储在 word 文档中的属性。

我使用 IIS 虚拟文件夹设置了一个测试场景,并在我的虚拟文件夹的物理路径中放置了一个 docx 文件(我知道它包含标题和主题属性中的信息)。

我将浏览器指向虚拟文件夹别名,浏览器弹出了消息,要求打开或保存文档。

如果我选择保存,保存后的docx属性仍然完好。

如果我选择先打开它然后从 Word 中保存它,保存的 docx 会丢失属性。

所以我想我需要发布一个不同的问题!

关于c# - IIS 虚拟文件夹 URL 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333944/

相关文章:

c# - 为什么将属性初始化为 null 而不是配置中的空列表?

c# - 单元测试任务<IActionResult>

asp.net - 尝试使用 Visual Studio 2008 附加到 ASP.NET 进程时出现 "Mixed mode debugging is not supported on Windows 64-bit platforms"

windows - 在 Chef Windows Web 部署中更新 web.config

asp.net-mvc - 在 IIS 中创建反向代理

C# 需要有关表单导航的简单问题的建议

c# - 将壁面列表转换为连贯多边形的算法

c# - 如何从 asp :panel 获取文本属性

c# - 如何创建全局变量,ASP.NET,全局asax

c# - 网络网格 : Cannot convert lambda expression to type 'object' because it is not a delegate type