0

在我们的项目中,用户可以将文档上传到目录。问题是用户无法通过 URL 访问这些文件。

在 IIS 中使用权限后,我能够通过更改文件(或文件夹)的权限以允许 IIS_IUSRS“读取”来下载文件。我的问题是这些文件夹也是动态生成的,我不想手动必须通过并更改每个文件夹的权限。

我正在尝试获取 web.config 文件以允许读取这些文件,但我无法获得正确的配置。

在网站的 web.config 文件中,我有:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="path/to/upload/directory">
        <system.webServer>
            <security>
                <authentication>
                    <windowsAuthentication enabled="false" />
                    <anonymousAuthentication enabled="true" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

但是,再次访问该文件时,我收到 500.19 错误:

AnonymousAuthenticationModule
此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。默认情况下锁定 ( overrideModeDefault="Deny"),或者由带有overrideMode="Deny"或 legacy的位置标记显式设置allowOverride="false"

按照这个答案,我在 applicationHost.config 中设置AnonymousAuthenticationModulelockItem="false",并anonymousAuthentication重新Allow启动服务器。毕竟,我仍然得到相同的 500.19 错误。

4

1 回答 1

0

当您说文件夹是动态生成的时,您的意思是通过代码生成的吗?如果是这样,您可以确保父目录具有所需的权限,然后将其子目录的权限设置为“继承”。对于文件,它将是

Dim perms = File.GetAccessControl(targetFile)
perms.SetAccessRuleProtection(False, False)
File.SetAccessControl(targetFile, perms)

我希望你能找到一个目录的等价物。

于 2013-04-04T21:04:51.457 回答