ASP.NET Response.Redirect URL参数通过ReverseProxy

时间:2012-06-12 21:53:42

标签: asp.net relative-path reverse-proxy response.redirect

我们有一个使用Response.Redirect

的基于Web的应用程序
  

e.g。 Response.Redirect(“http://app_domain.com/userhome.aspx”)

在基于表单的身份验证后立即将Web浏览器重定向到适当的主页。当客户端和服务器位于同一网络上时,此方法可以正常工作。

我们有一个用例,需要通过反向代理(我们使用EZProxy)从外部访问此应用程序。因此,Web浏览器连接到反向代理,反向代理连接到应用程序服务器。在这种情况下,反向代理会重写所有请求和响应。 Web浏览器地址栏中的URL类似于http://app_domain.com.reverseproxy.com/。用户可以浏览到登录页面,输入凭据并单击登录按钮。但是,似乎成功登录后的Response.Redirect通过将浏览器重定向到http://app_domain.com/userhome.aspx来中断流程。浏览器无法直接连接到此域,因为它位于防火墙后面。

此问题与Response.Redirect in ASP.NET AJAX calls类似。但是我发现这个问题没有一个令人满意的答案。

是否可以使用相对路径,如

  

Request.Redirect( “〜/ Userhome.aspx”)

或者在传递给浏览器之前是否在服务器端得到解决?

期望的结果将是一个重定向机制,它将考虑Web浏览器地址栏中存在的域/ URL。

使用fiddler,这就是我所看到的。最后一次重定向不是反向代理友好的。

  

HTTP / 1.1 200确定

     

缓存控制:无缓存

     

Pragma:no-cache

     

Content-Type:text / plain;字符集= UTF-8

     

过期:-1

     

服务器:Microsoft-IIS / 7.0

     

Set-Cookie:.ASPXAUTH = BE3D7796245FEEA18FF92C9BD4B3F68F08C9E22CA209A139FBDC45BD6633788E6E68EE30F2BAE7EB223CA8F492FA93DFE7AB2723A848C6E75DF87B613075AF418D517921E81B2741224D702B9;路径= /;仅Http

     

Set-Cookie:.ASPXAUTH = 693B8AC69ABB53F7468466C6D10C9BF5BAFB860F76FC557E3DAD9C733223957E3A46FF8E21E6822CD5420F1724C61809DC83FDE7C8E3DF9D4E972E61F7DDEE05C61E8D8AA97107B5B68412AFC347;路径= /;仅Http

     

X-Powered-By:ASP.NET

     

日期:2012年6月15日星期五20:41:32 GMT

     

内容长度:64

     

46 | pageRedirect || http://app_domain.com/UserHome.aspx|

0 个答案:

没有答案