Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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反向代理未命中实际API_Iis_Url Rewriting_Reverse Proxy - Fatal编程技术网

IIS反向代理未命中实际API

IIS反向代理未命中实际API,iis,url-rewriting,reverse-proxy,Iis,Url Rewriting,Reverse Proxy,我正在为我的应用程序构建一个新的通用身份验证模块。为此,我需要截获到API层的请求,路由到公共身份验证服务,并且只有在身份验证服务返回成功时才继续正常的流。调用身份验证服务时,参数通过查询字符串传递给它,根据查询字符串返回true/false作为响应 活动流程: 浏览器调用,即Site1 Site1上的反向代理规则使调用转到Site2,这是 Site2检查param的值并返回JSON响应-true或false 浏览器返回响应 我使用IIS作为反向代理,配置了url重写模块和ARR。已检查IIS中

我正在为我的应用程序构建一个新的通用身份验证模块。为此,我需要截获到API层的请求,路由到公共身份验证服务,并且只有在身份验证服务返回成功时才继续正常的流。调用身份验证服务时,参数通过查询字符串传递给它,根据查询字符串返回true/false作为响应

活动流程:

  • 浏览器调用,即Site1
  • Site1上的反向代理规则使调用转到Site2,这是
  • Site2检查param的值并返回JSON响应-true或false
  • 浏览器返回响应
  • 我使用IIS作为反向代理,配置了url重写模块和ARR。已检查IIS中根节点上的ARR的“启用代理设置”。在IIS的API站点上,我配置了如下重写规则:

    <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost/ValidateAuthN" />
                </rule>
            </rules>
    </rewrite>
    
    
    
    我看到请求被重定向到带有查询字符串值的身份验证服务,并且身份验证服务返回的真/假响应直接在调用应用程序中接收。然而,请求并没有到达实际的API层进行进一步处理。我想要的是,在上面的步骤4中,请求应该返回到site1,JSON响应为true/false


    请建议此配置中可能缺少的内容。

    也许您需要一个例外规则来回复?您的匹配规则
    (.*)
    捕获了所有内容,因此正确/错误的回复可能会被重新路由?

    我无法清楚地理解您的描述。您的意思是您已经在web应用程序中安装了auth模块吗?它将首先检查正确或错误,然后调用什么api?我建议您可以发布更多有关auth模块如何工作以及它如何调用web api的详细信息。@BrandoZhang:我已经添加了事件流以及有关authn服务中发生的情况的更多详细信息。我已经检查了失败的请求日志,发现reply没有被重新路由