gpt4 book ai didi

ASP.NET 身份验证,排除 root 并允许匿名

转载 作者:行者123 更新时间:2023-12-02 20:58:21 26 4
gpt4 key购买 nike

在使用 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 表单例份验证认为“/”是 protected 页面或内容并将我重定向到登录页面。

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

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

谢谢

巴斯卡拉

最佳答案

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

这是问题和解决方案:

  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 属性,而是在根级别设置...主网站设置为表单例份验证和通配符映射最终触发了 ASP.NET 表单例份验证

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

关于ASP.NET 身份验证,排除 root 并允许匿名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3780828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com