2

我们有一个使用 Response.Redirect 的基于 Web 的应用程序

例如 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来中断流程。浏览器无法直接连接到此域,因为它位于防火墙后面。

这个问题类似于ASP.NET AJAX 调用中的 Response.Redirect。但是我看到这个问题没有令人满意的答案。

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

Request.Redirect("~/Userhome.aspx")

还是在传递给浏览器之前在服务器端解决?

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

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

HTTP/1.1 200 正常

缓存控制:无缓存

Pragma:无缓存

内容类型:文本/纯文本;字符集=utf-8

过期:-1

服务器:Microsoft-IIS/7.0

设置 Cookie:.ASPXAUTH=BE3D7796245FEEA18FF92C9BD4B3F68F08C9E22CA209A139FBDC45BD6633788E6E68EE30F2BAE7EB223CA8F492FA93DFE7AB2723A848C6E75DF87B61327027AF418D42249 路径=/; HttpOnly

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

X-Powered-By: ASP.NET

日期:格林威治标准时间 2012 年 6 月 15 日星期五 20:41:32

内容长度:64

46|页面重定向|| http://app_domain.com/UserHome.aspx|

4

0 回答 0