【发布时间】: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