【发布时间】:2011-03-28 17:28:22
【问题描述】:
我不知道这是应用程序配置问题还是 IIS 问题。如果这应该发生 ServerFault,请原谅我。
我有一个 ASP.NET MVC 应用程序(我认为 MVC 无关紧要,但无论如何)。在我的 Windows 7 开发机器上与在我的 Server 2008 机器上,我在身份验证方面得到了不同的行为。基本上,服务器行为符合要求,但 Windows 7 行为似乎忽略了我的 web.config 中的指令。我在 web.config 中有表单身份验证集和匿名用户被拒绝。然后,为了让登录页面能够显示图形、CSS 等。我设置了一个标签以允许所有用户进入我的 /Content 文件夹,其中包含所述图形、CSS 等。想法是表单身份验证不'不干扰静态内容。
当用户作为表单身份验证的正常部分被转发到登录页面时,在服务器上页面是正常的,但在 Windows 7 机器上,没有显示图形或 CSS。当我检查到这些图形的直接 URL 时,结果表明每个图形请求也被表单身份验证重定向。
这是我的 web.config 的相关部分:
<configuration>
<location path="Content">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" enableCrossAppRedirects="true" defaultUrl="/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
谁能想到为什么在服务器机器上,这可以按预期工作?未经身份验证的请求被转发到 /Account/LogOn,但仍然提供页面图形/CSS。然而,在开发机器(Windows 7)上,未经身份验证的请求按预期重定向,/Content 中的图形也是如此?
【问题讨论】:
-
好的,当我将“所有人”添加到 Content 文件夹的安全性时,它就可以工作了。我确实看到了这个:stackoverflow.com/questions/2532079/…。但是,我添加了应用程序池的帐户(IIS APPPOOL\DefaultAppPool),这不起作用。
标签: iis-7 windows-7 forms-authentication