【问题标题】:Disable form authentication for public pages禁用公共页面的表单身份验证
【发布时间】:2010-02-26 23:56:42
【问题描述】:

在我的开发环境中,一切正常。我可以访问所有页面,一旦进入安全页面,我就会检查 Request.IsAuthenticated 并在需要时重定向到登录页面。 当我在 IIS7 下部署项目时,问题就开始了。当我访问该站点时,我被重定向到登录页面(如 web.config 中所定义),尽管它假设是一个公共页面......如果我在管理控制台中禁用表单身份验证 Request.IsAuthenticated 总是返回 true . 所以

如何使 IIS 的行为类似于我的 ASP.NET 开发服务器?

附言 我正在使用 asp.net MVC

谢谢, 伊甸园。

【问题讨论】:

  • 您使用的是默认的 asp.net 会员资格还是自定义会员资格提供商?您是否还在使用 [Authorize()] 操作过滤器来确定用户是否被授权?
  • 我没有改变任何东西。我只是开始了一个新的 MVC 项目(Visual Studio 2008)并按原样部署...... IIS6 一切正常,但 IIS7 给我带来了麻烦......

标签: asp.net asp.net-mvc iis


【解决方案1】:

您的 web.config 中可能有授权部分,它拒绝未经身份验证的用户的所有请求。检查this article 以获取有关授权部分的一些详细信息。通过添加

显然允许未经身份验证的用户访问会更好
    <authorization>
        <allow users="*" /> 
    </authorization>

编辑 26/02:
可能有一些特定的 IIS 授权规则(IIS 7 引入了新的授权机制)。我建议您使用 IIS 管理工具检查为应用程序定义的所有规则(this article 解释了如何检查它们)。检查changes between IIS 6 and IIS 7IIS 7 url authorization feature in details 对您来说可能会很有趣和有用。

我还在我的盒子上检查了它(Windows 7)。我创建了一个简单的 asp.net mvc 应用程序并将其部署到 IIS(7.5 版)。一切都按预期工作。可能对您的服务器有一些限制,这些限制位于根配置(根文件夹中的配置)或machine.config 中。

【讨论】:

  • 不,我没有。但是这篇文章看起来很有希望,尽管它没有解释生产环境和开发环境之间的区别。
猜你喜欢
  • 2020-09-08
  • 2011-02-19
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多