ASP.NET auth,排除root&允许匿名

时间:2010-09-23 17:09:28

标签: asp.net forms-authentication

我们在使用IIS6.0&amp ;;设置新的Windows 2003 Server时发现了一个奇怪的问题。在ASP.NET 2.0中,我们的站点是使用ASP.NET表单身份验证构建的,具有一般授权以拒绝所有用户的访问权限。明确允许静态,主页等, - 表单身份验证的web.config设置,如下所示:

     <authentication mode="Forms">
        <forms name="appNameAuth" path="/" loginUrl="~/Pages/Users/Login.aspx" protection="All" timeout="60" defaultUrl="~/Pages/Inner.aspx">
        </forms>
    </authentication>
    <authorization>
        <deny users="?"/>
    </authorization>

问题是:

如果我们访问该网站localhost / default.aspx工作正常&amp;可以查看我们网站的主页,但如果我们使用localhost /访问 - 期望查看default.aspx(因为它设置为默认文档),但由于某种原因,ASP.NET Forms Authentication认为“/”是受保护的页面或内容&amp;将我重定向到登录页面。

我无法在web.config中找到通知“/”as allow = * ...认为它可能与某些NTFS&amp;文件夹的IIS权限问题,无法获得更多关于..

的更新

任何帮助解决此问题,将不胜感激。

由于

Bhaskara

1 个答案:

答案 0 :(得分:1)

上周末,上述问题在我们的服务器上重新出现......同时进行其他一些配置更改&amp;最终找到问题的根本原因(而不是之前建议的简单“重新创建”网站)。

这是问题&amp;溶液:

  1. 我们的主网站简单的基于ASP.NET和&amp; NOT MVC app。

  2. 网站包含1个虚拟目录,基于MVC框架&amp;根据启用MVC的指南(http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx) - 我们应该设置.mvc模式&安培;后续通配符映射,用于扩展名较少的URL

  3. 我们做的错误是,不是在虚拟目录中设置MVC属性,而是在根级别设置...主要网站设置为forms-auth&amp;通配符映射最终触发了asp.net表单auth

  4. 在root&amp ;;删除通配符映射时,问题已解决仅在虚拟目录上设置(未使用asp.net auth&amp;允许匿名访问所有页面设置)