为什么我的样式表会将我重定向到登录?

sco*_*ttm 26 asp.net-mvc iis-7 windows-server-2008-r2

我确信这与IIS有关,但我无法弄明白.

我有一个使用表单身份验证的网站.当我的网站尝试访问任何文件资源(javascript文件,css等)时,我被重定向到我的web.config中设置的表单登录页面.如果我只是在地址栏中键入地址,我也会被重定向.

表单身份验证的web.config条目非常基本:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

还有两个位置节点可以拒绝来自站点其他部分的用户:

<location path="n2">
  <system.web>
    <authorization>
      <allow roles="Editors" />
    </authorization>
  </system.web>
</location>
<location path="web.config">
  <system.web>
    <authorization>
      <deny users="*" />
    </authorization>
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

我在Windows Server 2008 R2上使用标准的IIS7安装.

编辑 所以,如果我添加一个随机的auth cookie(FormsAuthentication.SetAuthCookie()),资源变得可用,我知道它必须是我的身份验证模型,不知何故搞砸了.它适用于另一台服务器(我只是复制了它).我有什么想法可以追踪问题吗?

Fer*_*ran 57

我有同样的错误,在我的情况下,诀窍是设置匿名身份验证在IIS中使用App Pool身份而不是IUSR

  1. 打开IIS
  2. 展开网站
  3. 选择[YourWebSite]
  4. 双击身份验证(将在IIS"区域"或安全"类别"下)
  5. 选择匿名身份验证
  6. 单击Actions窗格中的Edit
  7. 单击"应用程序池标识"单选按钮

  • 对于那些寻找这样做的人:Internet信息服务(IIS)管理器 - >站点 - >默认网站 - > [YourWebSite] - >身份验证 - >匿名身份验证 - >编辑 - >匿名用户身份:应用程序池身份 (4认同)