Joh*_*arr 6 asp.net iis-7 infinite-loop http-status-code-302
我有一个陷入无限循环的Web应用程序,我不知道接下来要去哪里看.这是一个内部网站点,所以没有我可以分享的链接,但我已经列出了我能想到的许多细节.我将不胜感激任何想法或建议.任何人都有.
细节:
如果我打开我的网站,它指向Login.aspx并陷入302循环.如果我打开网站但指向register.aspx,Fiddler会将register.aspx显示为Login.aspx,当然会重定向到Login.aspx.
我做了什么:
将分享这个以防万一这是一个答案,因为这听起来像是我们遇到的问题。
ASP.net MVC 站点[RequiresHttps]在我们的登录操作上具有属性。
在进行 SSL 加速的负载均衡器后面(导致实际命中服务器端代码的请求已被解码并在 http 下有效)。
服务器代码认为这是一个问题,并使用 https 重定向回自身。
冲洗并重复。
自从回答这个问题以来已经很长一段时间了,我在下面的评论“不使用 RequireHttps”可能有点过时了。
任何看到这个答案并认为它解决了他们的问题的人都可能会被强烈建议考虑配置他们的负载均衡器以使用 X-Forwarded-Proto 标头:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
然后设置他们的 MVC 站点,以便能够读取这些内容,并且仍然认为它们位于环境边界的 HTTPS 下:
发现问题了。在MasterPage中发现这个逻辑:
Dim strPage As String = Request.Url.AbsolutePath.Replace("/", "")
'Check that user is logged in
If Not strPage = "Login.aspx" And Not strPage = "Register.aspx" Then
If Session("intUserId") Is Nothing Then
Response.Redirect("~/Login.aspx", True)
End If
End If
Run Code Online (Sandbox Code Playgroud)
显然,当浏览到服务器上的 Login.aspx 时,strPage 不等于 Login.aspx。
我在调查的时候就应该把这个问题说出来。感谢罗斯的评论,它帮助我找到了这个!
| 归档时间: |
|
| 查看次数: |
7732 次 |
| 最近记录: |