Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis 在URL重写中匹配来自非HTML响应的标记内的内容_Iis_Reverse Proxy_Url Rewrite Module_Outbound - Fatal编程技术网

Iis 在URL重写中匹配来自非HTML响应的标记内的内容

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)时,需要重新写入从应用服务器(B)发送的任何自引用链接,以将代理用作主机

下面是一个例子:

来自(B)的响应包含:

代理(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