Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET服务Word文档_Asp.net_Security_Ms Word_Httphandler - Fatal编程技术网

ASP.NET服务Word文档

ASP.NET服务Word文档,asp.net,security,ms-word,httphandler,Asp.net,Security,Ms Word,Httphandler,我有一个应用程序,它有一个名为“Docs”的子文件夹(实际上是一个虚拟目录),我在其中保存所有word文档。我不希望任何未经身份验证的用户访问这些文档,但出于某种原因,无论我在我的根web.config或我的“Docs”web.config中放了什么,IIS仍然向任何用户提供该词。我假设该文件夹中的文件是.doc 除非您修改了IIS配置,.doc文件不由ASP.NET处理(默认情况下,它们应由直接的IIS文件处理程序处理)。这意味着asp.net dll永远不会看到该请求,因此asp.net的w

我有一个应用程序,它有一个名为“Docs”的子文件夹(实际上是一个虚拟目录),我在其中保存所有word文档。我不希望任何未经身份验证的用户访问这些文档,但出于某种原因,无论我在我的根web.config或我的“Docs”web.config中放了什么,IIS仍然向任何用户提供该词。

我假设该文件夹中的文件是.doc

除非您修改了IIS配置,.doc文件不由ASP.NET处理(默认情况下,它们应由直接的IIS文件处理程序处理)。这意味着asp.net dll永远不会看到该请求,因此asp.net的web.config文件中的任何设置都是毫无意义的


您需要将IIS配置为将.doc文件标识为由ASP.NET dll处理,或者使用通配符映射,以便服务器上的所有文件都通过ASP.NET(请记住,这会增加开销,使每个静态文件请求都通过完整的服务器端编程框架)

您的虚拟目录是一个独立的应用程序,可能不受根目录的控制。将web.config和映射添加到虚拟目录


如果这只是个人问题(您的问题有两种解释),我只会通过删除匿名访问来使用文件夹上的IIS级别密码。

我确实这样做了。我将IIS中的.doc扩展名映射到ASP.NET,并将web.config中的HttpHandler映射到*.doc扩展名,但这似乎只适用于根文件夹中的.doc文件,而不适用于“Docs”文件夹。我还尝试在映射HttpHandler的“Docs”文件夹中添加一个web.config,但似乎没有任何效果。因此,我完成了所有这一切(除了匿名访问,因为这些是应用程序用户动态生成的文档),但似乎没有任何效果。我通过点击同一个文档来测试所有这些设置。它被缓存在我的浏览器中。点击一个新文档给了我想要的结果。哇,太糟糕了。谢谢你的帮助!