1

我有一个我一直在开发的 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 中添加一行,允许完全访问内容。

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

我对可能导致这种情况的原因感到困惑。

4

1 回答 1

1

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

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

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

就我而言,我还必须更改匿名用户 - 为此,请右键单击匿名身份验证并选择编辑。将其更改为应用程序池标识。

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

于 2012-04-23T14:59:00.713 回答