我有一个被困在无限循环中的web应用程序,我不知道下一步该在哪里查找。这是一个内联网网站,所以没有链接我可以分享,但我列出了尽可能多的细节,我可以想到下面。如有任何意见或建议,我将不胜感激。任何人都有。
详情如下:
如果我打开我的站点,它指向Login.aspx并陷入302循环。如果我打开站点但指向register.aspx,Fiddler就会显示register.aspx将转到Login.aspx,这当然会重定向到Login.aspx。
我所做的:
发布于 2012-07-02 15:27:54
发现问题了。在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显然,在服务器上浏览到strPage时,Login.aspx并不等于Login.aspx。
我在调查的时候应该知道这件事的。谢谢罗斯的评论,它帮助我找到了这个!
发布于 2012-07-02 14:55:55
如果这是一个答案,我们会分享这一点,因为这听起来像是我们遇到的一个问题。
[RequiresHttps]属性的登录操作。自从回答这个问题已经有很长一段时间了,我下面关于“不使用RequireHttps”的评论可能有点过时了。
任何看到这个答案并认为它解决了他们的问题的人都应该考虑配置他们的负载均衡器来使用X转发-Proto报头:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
然后设置它们的MVC站点,以便能够读取这些内容,并且仍然认为它们位于您环境的边界HTTPS之下:
发布于 2017-06-30 22:42:01
我也遇到过类似的虫子。但我的错是两个Response.Redirect背靠背。
If (conditon1){
Response.Redirect("Page1.aspx");
}
If (conditon2){
Response.Redirect("Page2.aspx");
}解决方法是简单地把另一个放在else块中。
https://stackoverflow.com/questions/11296032
复制相似问题