在我的开发环境中,一切都按照我的预期运作。我可以访问所有页面,一旦到达安全页面,我会检查Request.IsAuthenticated并在需要时重定向到登录页面。 当我在IIS7下部署项目时,问题就开始了。当我访问该站点时,我被重定向到登录页面(如web.config中所定义),虽然它假设是公共页面...如果我在管理控制台中禁用表单身份验证Request.IsAuthenticated总是返回true 。 所以
如何让IIS的行为与我的ASP.NET开发服务器相似?
P.S。 我正在使用asp.net MVC
谢谢, 伊甸园。
答案 0 :(得分:2)
您的web.config中可能有授权部分,它拒绝所有未经身份验证的用户请求。有关授权部分的详细信息,请查看this article。最好通过添加
来允许未经身份验证的用户访问 <authorization>
<allow users="*" />
</authorization>
编辑26/02:
可能存在一些特定的IIS授权规则(IIS 7引入了新的授权机制)。我建议您使用IIS管理工具检查为应用程序定义的所有规则(this article说明如何检查它们)。而且查看changes between IIS 6 and IIS 7和IIS 7 url authorization feature in details可能对您有用且有用。
我也在盒子上检查了它(Windows 7)。我创建了一个简单的asp.net mvc应用程序并将其部署到IIS(版本7.5)。一切都按预期工作。您的服务器可能存在一些限制,这些限制放在根配置(根文件夹中的配置)或machine.config中。