我有一个我正在开发的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文件,我会立即重定向到登录页面!
我对可能造成这种情况的原因感到难过。
答案 0 :(得分:1)
正如Wim所提到的,复制线程有答案(尽管在我的案例中对已接受答案的评论中)。
问题是由IIS管理器中的身份验证设置引起的。
选择您的网站,然后选择身份验证。确保同时启用匿名身份验证和表单身份验证。
在我的情况下,我还必须更改匿名用户 - 为此,右键单击“匿名身份验证”并选择“编辑”。将其更改为应用程序池标识。
在此之后,图像和样式加载完美!