【问题标题】:ASP.Net 4 Forms Authentication in IIS 7.5 - Default Document No Longer WorkingIIS 7.5 中的 ASP.Net 4 表单身份验证 - 默认文档不再有效
【发布时间】:2012-03-15 02:21:54
【问题描述】:

我最近将 Web 应用程序从 .Net 3.5 迁移到 .Net 4,并将应用程序池更改为 IIS 7.5 中的集成模式。这个应用程序有两部分:第一部分向公众开放,第二部分仅通过登录。我使用表单身份验证进行登录,因此在根 web.config 中配置:

<authentication mode="Forms">
  <forms loginUrl="~/private/login.aspx" protection="All" timeout="20" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="~/private/default.aspx" cookieless="UseCookies" enableCrossAppRedirects="true" />
</authentication>

在根 web.config 中,我有默认授权拒绝未经身份验证的用户,因此:

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

但我在根 web.config 中配置了以下设置,以允许所有人看到欢迎页面:

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

这多年来一直很好用,但现在,如果我没有明确地将 Default.aspx 放在 URL 中,表单重定向模块会导致登录页面被提供。我已经验证我的默认页面配置正确并且在 IIS7 中启用。我也尝试在 web.config 中指定它们。我已经验证 DefaultDocumentModule 在 DirectoryListing 模块之前排序。

如果我删除元素,问题就会“消失”,但效果将是默认允许所有用户,这是完全不可取的。

我没有想法。有什么建议吗?

谢谢

【问题讨论】:

    标签: asp.net iis-7 forms-authentication


    【解决方案1】:

    似乎是某种默认文档问题。如果您在站点的 IIS 管理器中查看“默认文档”列表中的内容。列表中是否有可能除 Default.aspx 之外的其他内容更高?如果在您的根网站中找到与此匹配的内容,它将尝试先到那里并因此被重定向到登录。

    您是否在 web.config 中明确设置默认文档?如:

    <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="Default.aspx" />
                <add value="Default.htm" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
            </files>
        </defaultDocument>
    

    【讨论】:

    • Default.aspx 位于根网站列表的顶部。我的网站继承自此。我也试过这个:
    【解决方案2】:

    好的,我让 Microsoft 高级支持工程师为我深入研究了这个问题。我们一起坐在我的工作站上,讨论了 (a) 环境和应用配置以及 (b) 可能的解决方案。

    他引用了这个MS "Fast Publish" article,这表明我通过 MMC 从 IIS 中删除 ExtensionLessURL 处理程序。好吧,我们是一个庞大的组织,服务器超出了 wazoo 的范围,我不能保证这种更改会一直受到尊重,所以我不想这样做。我们尝试使用 web.config 删除它们,但没有奏效。

    所以,我给他看了this solution from another StackOverflow thread (posted by Dmitry.Alk),他说现在这是一个很好的解决方法。 适用于这种特殊情况

    Fast Publish 文章引用了此修补程序 A update is available that enables certain IIS 7.0 or IIS 7.5 handlers to handle requests whose URLs do not end with a period,我必须将其出售给我们的 IT“部门”。

    我不把我在这里写的东西称为“答案”,但我想分享我学到的东西,以防其他人在这个线程上发生。

    【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    相关资源
    最近更新 更多