2010-02-24 62 views
0

在我的开发环境中,所有功能都符合我的预期。我可以访问所有页面,只要我到达安全页面,我会检查Request.IsAuthenticated,并在需要时重定向到登录页面。 当我在IIS7下部署项目时,问题就开始了。当我访问网站时,我被重定向到登录页面(如web.config中定义的),尽管它假设是公共页面...如果我在管理控制台中禁用表单身份验证,则Request.IsAuthenticated始终返回true 。 所以禁用公共页面的表单身份验证

我该如何让IIS行为像我的ASP.NET开发服务器?

p.s. 我正在用asp.net MVC

谢谢, 伊甸园。

+2

您使用默认的asp.net成员资格或自定义成员资格提供程序吗?你还使用[Authorize()]动作过滤器来确定用户是否被授权? – lancscoder 2010-02-24 10:54:15

+0

我没有改变一件事..我只是开始一个新的MVC项目(Visual Studio 2008),并按原样部署... 一切按预期与IIS6工作,但IIS7给我麻烦... – Eden 2010-02-26 09:19:43

回答

2

也许你的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中。

+0

不,我不。但文章看起来很有希望,尽管它没有解释生产和开发环境之间的差异。 – Eden 2010-02-24 15:27:13

相关问题