身份验证忽略默认文档

时间:2011-11-01 11:12:32

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

今天我将我的应用程序从带有IIS6的服务器移动到带有IIS7.5的新服务器(Windows Server 2008 R2)。

奇怪的是,我已经无法访问默认文档,尽管它已在默认文档部分中设置。该文件是“deault.aspx”,当我尝试使用ip访问该页面时,我得到http://[IP]/login.aspx?ReturnUrl=%2f,但是它可以正常工作如果我直接访问它。

这是web.config

中的设置
<authentication mode="Forms">
  <forms protection="All" loginUrl="login.aspx" name="CookieName" timeout="49200" requireSSL="false"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>

 <location path="Default.aspx">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>
</location>

我已经尝试用这里写的一些建议来解决这个问题[Forms Authentication Ignoring Default Document] ,但没有运气。

我想通过以某种方式配置服务器而不是应用程序来解决它。

由于

我不知道它是否是正确的,但我将应用程序池的模式更改为经典而不是集成。

2 个答案:

答案 0 :(得分:1)

将以下内容添加到web.config中,它将允许您访问Default.aspx而无需事先进行身份验证。所有其他页面都需要验证。

<location path="default.aspx">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

仅仅因为在IIS配置中添加文档作为默认值并不意味着它绕过FormsAuthentication。

答案 1 :(得分:1)

对我来说,在IIS管理器中删除有关站点的ExtensionlessUrl- *处理程序映射器就可以了。尽管所有这一切都将相关的条目添加到我已经尝试过的运行中的web.config中。