代码之家  ›  专栏  ›  技术社区  ›  scottm

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

  •  26
  • scottm  · 技术社区  · 15 年前

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

    forms auth的web.config条目非常基本:

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

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

    <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>
    

    编辑 所以,如果我添加一个随机的auth cookie( FormsAuthentication.SetAuthCookie() ),资源变得可用,我知道一定是我的身份验证模型出了问题。它在另一台服务器上工作(我刚刚复制了它)。有什么办法让我找出问题所在吗?

    7 回复  |  直到 15 年前
        1
  •  57
  •   Sean    11 年前

    我也犯了同样的错误,在我的例子中,技巧是设置匿名身份验证以使用应用程序池标识,而不是IIS中的IUSR

    1. 打开IIS
    2. 选择[您的网站]
    3. 双击身份验证(将位于IIS“区域”或安全“类别”下)
    4. 选择匿名身份验证
    5. 在“操作”窗格中单击“编辑”
        2
  •  1
  •   umlcat    11 年前

    我用 allow * Content 文件夹。这将防止对静态内容进行任何授权。

      <location path="Content">
        <system.web>
          <authorization>
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
    

    瑞克

        3
  •  1
  •   Tyler Forsythe    10 年前

    在IIS中,我的匿名身份验证已正确打开,用户已设置为IUSR。因此,我需要进入Windows资源管理器,导航到我的web应用目录,右键单击“属性”、“安全”选项卡、“编辑”按钮,并授予IUSR“读取”、“列表”和“读取和执行”权限(默认设置)。确保所有子项都将继承这些更改,应用(可能是等待),然后就可以开始了。

        5
  •  0
  •   Rahul Soni    15 年前

    那是因为你对每个人都设置了拒绝。在IIS 7中,由于集成的管道,即使尝试浏览CSS或任何静态页面,也会重定向。

    如果愿意,可以将静态内容放在文件夹中,并允许对其进行访问。

        6
  •  0
  •   Darin Dimitrov    15 年前

    <location> web.config中的标记在ASP.NET MVC应用程序中作为位置处理授权不再有任何意义。在web.config中,您只需要 authentication 标签。在MVC中,可以通过使用 [Authorize] 属性。

        7
  •  0
  •   starskythehutch Bennett Keller    15 年前