IIS7 表单身份验证不会拒绝图像访问
Posted
技术标签:
【中文标题】IIS7 表单身份验证不会拒绝图像访问【英文标题】:IIS7 Forms Authentication Doesn't Deny Image Access 【发布时间】:2011-06-22 22:23:57 【问题描述】:我在 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 模块的“编辑托管模块”弹出窗口中,我尝试取消选中“仅为请求调用...”,但是这样做时会抛出某种奇怪的错误(缺少某种程序集?这是一个全新的服务器安装没有多余的装饰,所以我无法想象那是什么)。谁能指出我正确的方向?
谢谢! 机器人化
【问题讨论】:
【参考方案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>
【讨论】:
以上是关于IIS7 表单身份验证不会拒绝图像访问的主要内容,如果未能解决你的问题,请参考以下文章