经典 ASP - web.config 拒绝规则未检测到 cookie

Classic ASP - web.config deny rule not detecting cookie

我使用了一个面向 Internet 的经典 ASP 应用程序(托管在 Windows-Server-2012 / IIS8 上),该应用程序使用匿名访问,我想转移到表单身份验证。虽然它不是直截了当的,但就目前而言(设置 Anon.Access ),未经身份验证的用户(即尚未登录的用户)可以查看 .pdf、.doc 等文件,如果他们输入文件的确切 URL 路径(即通过默默无闻的安全性)。

问题

我的设置和尝试过的方法

通过以下代码设置Cookie

Response.Cookies("MyAuthCookie") = myGuid
Response.Cookies("MyAuthCookie").Expires = DateAdd("h", 6, Now())
Response.Cookies("MyAuthCookie").Path = "/"

我已尝试通过 web.config 授权 allow/deny 规则限制对 .pdf、.doc 文件的访问,如下所示

<location path="myProtectedFolder">
  <system.web>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>
</location>
<system.web>
  <machineKey decryptionKey="XXXXXXXX99999999XXXXXXXX" validationKey="XXXXXXXX99999999XXXXXXXX" />
    <authentication mode="Forms">
      <forms name="MyAuthCookie" loginUrl="/index.asp" path="/" />
    </authentication>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>

模块已配置如下

<modules>
  <remove name="FormsAuthentication" /> 
  <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />    
  <remove name="UrlAuthorization" />    
  <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />    
  <remove name="DefaultAuthentication" />    
  <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
</modules>

...和处理程序如下(由 ISAPI 处理)

<handlers>
  <add name="pdfs64" path="*.pdf" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Read" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
  <add name="pdfs" path="*.pdf" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Read" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>

其他注意事项

如有任何帮助,我们将不胜感激

我完成了从 HttpModule 中的 cookie 创建一个真正的 FormsAuthentication cookie(模块的配置是模块部分)。这符合 allow/deny 规则。