当我期望200 OK时,为什么302重定向响应

问题描述 投票:0回答:1

TLDR

我雇用的网站在两个地方维护处理安全性:web.config Forms-authentication,并通过检查MasterPage中代码隐藏中的Session cookie。因此,更改安全性详细信息,例如无需登录即可访问某些页面,需要在both位置进行更改。忘记一个,网络开发工具中发生奇怪的事情......


我的网站工作得非常好,但是留下的小问题让我感到困惑。它使用Forms身份验证,但root中的所有文件都不受限制;只有一些目录在本地web.config中有deny users=?。仍然,登录前无法访问根目录中的asp页面,并使用302 Found, Redirect进行响应。

这是root中web.config的一部分:

<authentication mode="Forms">
  <forms name="MYWEBAPP.ASPXAUTH" loginUrl="~/Welkom.aspx"
    protection="All" timeout="181" slidingExpiration="true" path="/"/>
</authentication>

而且没有<authorization>部分。

在登录之前,用户应该被允许访问像/Cookies.aspx这样的页面,但是使用FireFox F12开发工具,选项卡网络,我看到302的响应,然后重定向到/Login.aspx。

这导致两个问题:

  1. 为什么302,而不仅仅是200 OK并显示Cookies页面?
  2. 为什么要去/Login.aspx而不是/Welkom.aspx?

我承认Welkom.aspx在这里可能看起来很奇怪,但多年来它运行良好,如果查询参数中有合适的url,它会执行Response.Redirect("/Login.aspx")。但是我在Page_Load()中检查了一个调试器断点,在上面的问题中,没有访问过Welkom.aspx.cs,所以IIS(Expr)直接进入/Login.aspx,非常奇怪。

asp.net web-config forms-authentication iis-express
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.