IIS7窗体身份验证不会拒绝图像访问

时间:2011-06-22 22:23:57

标签: iis-7 forms-authentication

我在IIS7中设置了一个基本的ASP.NET网站,并在服务器上启用了表单身份验证。只是为了笑容,我否认所有人:

<?xml version="1.0"?>
<configuration>
  <system.web>

    <authentication mode="Forms">
        <forms name=".ASPXAUTH" loginUrl="Login.aspx" defaultUrl="Test.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true"/>
    </authentication>

    <authorization>
        <deny users="*"/>
    </authorization>

    <compilation debug="true"/>
  </system.web>
</configuration>

当我访问default.aspx页面时,我会尽职地重定向到Login.aspx页面。但是,我可以浏览同一站点根目录下的.txt文件或.png文件,并显示它没有任何挑战。

这很奇怪,因为在Cassini开发服务器中,阻止了对这些文件的访问。只有在我发布到IIS7服务器后才会出现这种情况。

我必须在IIS7中遗漏一些东西,但我无法理解我的生活。

  • 我的网站上有自己的.NET 4.0应用程序池,启用了集成模式。
  • 在服务器上启用表单身份验证
  • 在FormsAuthentication模块的Edit managed Module弹出窗口中,我尝试取消选中“仅为请求调用...”,但是当我这样做时会抛出某种奇怪的错误(某些类型的程序集丢失了?这是一个新的服务器安装没有多余的装饰,所以我无法想象那是什么。

有人能指出我正确的方向吗?

谢谢! Droidilate

1 个答案:

答案 0 :(得分:1)

首先,您必须使用集成管道,然后在web.config中添加它:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="FormsAuthenticationModule" />
    <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />

    <remove name="UrlAuthorization" />
    <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
  </modules>
</system.webServer>