IIS虚拟文件夹URL加密

时间:2010-02-25 12:33:15

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

我们有一个ac#asp.net网络应用程序,除其他外,允许用户下载以前上传的文件,如PDF,Word文档等.asp.net应用程序通过IIS6服务器和文件资源提供服务在另一台服务器上。

当用户请求文件(即单击Web表单上的按钮)时,我们将文件流回其浏览器,并相应地更改ContentType。

这似乎是避免使用IIS虚拟文件夹路由来提供文件资源的好方法 - 由于用户可能会破解URL,我们担心这一点。即使用像https://mydomain/myresource/clientid/myreport.docx这样的网址,一个精明的用户可以很好地猜测替代cvlientid和文档名称。

将Word文档流式传输到浏览器的麻烦在于,当浏览器将其投放到Word时,Word将其视为全新的文档,这意味着原始文档的属性和属性。保证金信息丢失。

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

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

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

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

非常感谢提前。

PS。我们的网络应用程序通过https

发送

2 个答案:

答案 0 :(得分:0)

对不起,伙计们,在我的问题中,我做了一些不正确的假设。

我想要做的是,当从服务器(使用Response.TransmitFile或通过虚拟文件夹)将word文档存储在客户端浏览器中时,将其保存在word文档中。

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

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

如果我选择保存它,保存的docx仍然具有完整的属性。

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

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

答案 1 :(得分:0)

您可能会发现“Windows Identity Foundation”中的ClaimsAuthorizationManager类可以满足您的需求。您可以实现您喜欢的任何逻辑,以确定谁可以在不使用“目录安全性”的情况下下载内容。