繁体   English   中英

IIS 7.5中的ASP.Net 4表单身份验证-默认文档不再起作用

[英]ASP.Net 4 Forms Authentication in IIS 7.5 - Default Document No Longer Working

我最近将一个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>

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

如果删除该元素,问题将“消失”,但结果是默认情况下将允许所有用户使用,这是完全不希望的。

我没主意了。 有什么建议吗?

谢谢

一世

似乎是某种默认的文档问题。 如果您在该站点的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>

好的,我让一位Microsoft Premier Support工程师为我进行了深入研究。 我们一起坐在我的工作站上,经历了(a)环境和应用程序配置以及(b)可能的解决方案。

他引用了此MS“快速发布”文章 ,该文章建议我通过MMC从IIS中删除ExtensionLessURL处理程序。 好吧,我们是一个庞大的组织,服务器无济于事,我不能保证总是会兑现这一改变,所以我不想这样做。 我们尝试使用web.config删除它们,但是没有用。

因此,我向他展示了另一个StackOverflow线程(由Dmitry.Alk发布)中的解决方案 ,他说这是一个不错的解决方法。 对于这种特殊情况,它非常有用

快速发布文章引用了此修补程序。已有可用的更新,该更新使某些IIS 7.0或IIS 7.5处理程序能够处理其URL不以我必须卖给我们的IT“部门” 的时期结尾的请求

我不会将我在此处写的内容称为“答案”,但我想分享自己所学到的内容,以防其他人在此线程上发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM