IIS的ProxyPassReverseCokieDomain等效项

IIS的ProxyPassReverseCokieDomain等效项,iis,url-rewriting,session-cookies,reverse-proxy,Iis,Url Rewriting,Session Cookies,Reverse Proxy,我使用IIS和URL重写作为reverseProxy。我的实际Web应用程序托管在一个无法直接访问internet的服务器上 在重写规则中,我将反向代理的主机名替换为本地IP地址。这个很好用 但是,我使用的应用程序提供下载。一旦客户端发出下载请求,服务器端进程就会重定向到实际的下载文件 这就是我的问题所在。会话cookie(JSSessionID)似乎没有在反向代理和本地服务器之间正确共享。我没有被重定向到下载文件,而是从本地服务器收到一条401“未授权”消息 我在这里发现了一个类似的问题。 用

我使用IIS和URL重写作为reverseProxy。我的实际Web应用程序托管在一个无法直接访问internet的服务器上

在重写规则中,我将反向代理的主机名替换为本地IP地址。这个很好用

但是,我使用的应用程序提供下载。一旦客户端发出下载请求,服务器端进程就会重定向到实际的下载文件

这就是我的问题所在。会话cookie(JSSessionID)似乎没有在反向代理和本地服务器之间正确共享。我没有被重定向到下载文件,而是从本地服务器收到一条401“未授权”消息

我在这里发现了一个类似的问题。 用户使用Apache作为反向代理,并使用
ProxyPassReverseCookieDomain
重写cookie域名

IIS中是否有类似的设置? 我尝试了下面的越界规则,但这不起作用

<preCondition name="contains-domain-set-cookie-header">
  <add input="{RESPONSE_Set_Cookie}" pattern=".*?domain=MYDOMAIN*?" />
</preCondition>
<rule name="rewrite cookie domain" preCondition="contains-domain-cookie-header">
  <match serverVariable="RESPONSE_Set_Cookie" pattern="^(.*?domain=)MYDOMAIN(.*?)$" negate="false" />
  <action type="Rewrite" value="{R:1}MYLOCALIP{R:2}" /> 
</rule>

还有其他的方法来处理这个问题吗

谢谢

托马斯找到了答案

要保留主机头,请从命令行运行此命令以更新Machine/webroot/apphost config

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
可能重复的