asp.net如何知道不对login.aspx应用安全性?反向代理给我带来了问题

时间:2010-08-23 02:57:45

标签: c# asp.net authentication forms-authentication

我有一个asp.net应用程序,它使用表单身份验证来拒绝匿名用户。如果我直接访问服务器,它工作正常,但如果我通过反向代理访问它,它似乎没有那么好。

反向代理会将您发送到默认页面,然后重定向到login.aspx页面,因为我没有登录,这很好,并证明代理设置正常。但它无法呈现login.aspx,给出302(重定向)响应。

我猜不知道asp.net有一种给予login.aspx特殊权限的方法,这样你就不需要登录就可以访问它了,这与网站的其他部分不同。我进一步猜测这个逻辑在通过反向代理访问它时失败了,不知怎的,它正在考虑“你不能看到login.aspx因为你没有登录”。然而,这只是猜测......

无论如何,有人可以伸出援助之手吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

  • 使用fiddler / wireshark /无论如何可能看到线路上发生的事情
  • 默认情况下获得“特殊处理”的页面由web.config中指定的loginUrl确定 - > system.web - >身份验证 - >表单loginUrl - 例如:
  • 您可以通过web.config禁用特定路径上的身份验证要求:

`

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

我看到发生的一个常见问题(这可能是你要点击的)是登录页面跳过auth检查罚款,但登录页面引用的东西(图像,javascript文件等)没有,所以那些请求最终以302返回登录。如果这也是你的情况,那么只需添加位置路径(如上所述)足以“取消保护”登录页面需要访问的任何内容以便正确显示。