【问题标题】:ASP.NET auth, exclude root & allow anonymousASP.NET 身份验证,排除 root 并允许匿名
【发布时间】:2011-04-16 09:37:11
【问题描述】:

我们在使用 IIS6.0 和 ASP.NET 2.0 设置新的 Windows 2003 Server 时发现了一个奇怪的问题,我们的网站是使用 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 的身份访问该站点工作正常并且可以查看我们网站的主页,但如果我们使用 localhost/ 访问 - 期望查看 default.aspx(因为它被设置为默认文档),但由于某种原因,ASP.NET Forms Authentication 认为“/”是受保护的页面或内容并将我重定向到登录页面。

无论如何我都找不到在 web.config 中将“/”通知为允许 = *...我认为它可能与文件夹的某些 NTFS 和 IIS 权限问题有关,无法获得太多关于..

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

谢谢

巴斯卡拉

【问题讨论】:

    标签: asp.net forms-authentication


    【解决方案1】:

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

    这是问题和解决方案:

    1. 我们的主网站是简单的基于 ASP.NET 而非 MVC 应用程序。

    2. 网站包含 1 个虚拟目录,建立在 MVC 框架之上,并按照启用 MVC 的指南 (http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis -6-walkthrough.aspx) - 我们应该为无扩展 URL 设置 .mvc 模式和后续通配符映射

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-30
      • 2023-04-09
      • 2021-03-23
      • 2011-05-14
      • 1970-01-01
      • 2020-07-01
      • 2015-12-05
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多