Iis 在URL重写中匹配来自非HTML响应的标记内的内容
当通过代理服务器(a)时,需要重新写入从应用服务器(B)发送的任何自引用链接,以将代理用作主机 下面是一个例子: 来自(B)的响应包含:Iis 在URL重写中匹配来自非HTML响应的标记内的内容,iis,reverse-proxy,url-rewrite-module,outbound,Iis,Reverse Proxy,Url Rewrite Module,Outbound,当通过代理服务器(a)时,需要重新写入从应用服务器(B)发送的任何自引用链接,以将代理用作主机 下面是一个例子: 来自(B)的响应包含: 代理(A)需要重写为: 通常,这是通过创建一个出站规则来完成的,该规则检查包含URL的标记的html响应,查找对应用服务器的引用,并重写它们 这里有一条正常规则: 但我可以将规则扩展到包括xhr 但是,URL重写仍然存在将返回的文本解析为标记的问题,因为它不是有效的HTML 下面是一个响应的示例: | 6383 |更新面板| ctl00 |主内容占位符|内
代理(A)需要重写为:
通常,这是通过创建一个出站规则来完成的,该规则检查包含URL的标记的html响应,查找对应用服务器的引用,并重写它们
这里有一条正常规则:
但我可以将规则扩展到包括xhr
但是,URL重写仍然存在将返回的文本解析为标记的问题,因为它不是有效的HTML
下面是一个响应的示例:
| 6383 |更新面板| ctl00 |主内容占位符|内容更新面板|
...
|0 | hiddenField | Uu事件目标| 0 | hiddenField | Uu事件参数| 0 | hiddenField|
但是,当我执行此操作时,会出现以下错误:
Sys.WebForms.PageRequestManagerParserErrorException:
无法分析从服务器收到的消息
无法修改从ASP.NET返回的XHR请求。这样做是为了尝试一个中间人攻击(你的代理是这样做的),但是微软有很好的理由来阻止。
下面是一条虚拟消息,用于探索ASP.NET在响应中使用的语法:
1|#||2|52|updatePanel|ctl00_mainContentPlaceHolder_firstUpdatePanel|
<p> New Content For First Update Panel </p>
每个部分中的len
必须与后面的字符数完全相等。因此,在这些消息中查找和替换内容是极其易变的
最好的建议是只返回一个与服务器无关的相对URL,这样客户机就可以相对于其当前域重定向
|char_len|update_type|id_of_field_to_update|
New contents to insert into field