使用表单身份验证在Asp Net经典模式下保护静态文件

时间:2020-10-13 10:17:43

标签: asp.net web-config iis-7.5

自昨天以来,我一直在努力解决此问题。

我有一个站点(框架4.0),该站点托管在带有IIS 7.5的Windows Server中,该服务器为经典模式。 不幸的是,我无法将其更改为集成模式。

我需要保护文件夹中包含的文件。

只有经过身份验证的用户(使用表单身份验证)才能访问它们。 没有匿名用户。

我试图通过这种方式在webconfig中保护文件夹:

<location path="Riservata/Files">
      <system.web>
        <authorization>
          <deny users="?" />
        </authorization>
      </system.web>
</location>

但是我仍然可以直接访问这些文件。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

对于将来的用户: 我解决了在IIS 7.5上编写通配符的问题。 IIS在我要保护的文件夹上自动编写了一个新的web.config:

<configuration>
    <system.webServer>
        <handlers>
            <add name="Proteggi_File_WildCard" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
        </handlers>
    </system.webServer>
</configuration>

此代码将激活ISAPI模块并将所有调用(“ *”)带到ASP NET管道,因此,如果未通过表单身份验证对用户进行身份验证,则会发生重定向到登录页面的情况。