我有一个陷入无限循环的Web应用程序,我不知道接下来要去哪里看。这是一个内部网站点,所以没有我可以分享的链接,但我已经列出了我能想到的许多细节。我将不胜感激任何想法或建议。任何人都有。
细节:
如果我打开我的网站,它会指向Login.aspx并陷入302循环。如果我打开网站但指向register.aspx,Fiddler会将register.aspx显示为Login.aspx,当然会重定向到Login.aspx。
我做了什么:
答案 0 :(得分:3)
如果这是一个答案,请分享这个,因为这听起来像是我们遇到的问题。
我们的登录操作中包含[RequiresHttps]
属性的ASP.net MVC网站。
在负载平衡器后面进行SSL加速(导致实际命中服务器端代码的请求已经解码并且在http下有效)。
服务器代码认为这是一个问题,并使用https重定向回自身。
冲洗并重复。
答案 1 :(得分:2)
发现问题。在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
显然,在浏览服务器上的Login.aspx时,strPage不等于Login.aspx。
当我调查时,我应该知道这一点。感谢Ross的评论,它帮助我找到了这个!
答案 2 :(得分:1)
我遇到过类似的错误。但我的错误是两个 Response.Redirect 背靠背。
If (conditon1){
Response.Redirect("Page1.aspx");
}
If (conditon2){
Response.Redirect("Page2.aspx");
}
修复方法是将 if 放在 else 块中。