身份验证问题仅限IIS7.5

时间:2012-04-20 12:56:53

标签: asp.net-mvc-3 forms-authentication iis-7.5

我有一个我正在开发的MVC 3应用程序,它使用Forms身份验证。在我的web.config文件中,我唯一的身份验证代码是:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

然后,我在每个需要限制访问权限的控制器上使用[Authorize]标记。

我在我的开发机器(Windows 7),在线演示服务器(带有IIS6.5的Windows 2003)和本地生产服务器(带有IIS7.5的Windows 2008 Web Edition R2)上运行系统。

当我在Win2008服务器上访问系统时,我按预期重定向到登录页面,但是没有加载任何CSS样式表,并且所有图像都丢失(全部位于Content文件夹中)。这只发生在Win2008服务器上,在我的本地开发机器和Win2003机器上,CSS和图像加载就好了。

Content文件夹没有任何限制,实际上它甚至包含自己的web.config,允许访问未经过身份验证的用户。我还尝试在主web.config中添加一行,允许完全访问内容。

如果我将.htm文件放在Content文件夹中,我可以在浏览器中访问它。但是,如果我尝试访问图像或.css文件,我会立即重定向到登录页面!

我对可能造成这种情况的原因感到难过。

1 个答案:

答案 0 :(得分:1)

正如Wim所提到的,复制线程有答案(尽管在我的案例中对已接受答案的评论中)。

问题是由IIS管理器中的身份验证设置引起的。

选择您的网站,然后选择身份验证。确保同时启用匿名身份验证和表单身份验证。

在我的情况下,我还必须更改匿名用户 - 为此,右键单击“匿名身​​份验证”并选择“编辑”。将其更改为应用程序池标识。

在此之后,图像和样式加载完美!

相关问题