在我们应用程序的生产环境中,当我们在 C# WebBrowser 控件上调用 Navigate 操作时,我们首先将身份验证详细信息和重定向 URL 发布到身份验证服务器。该服务器进行身份验证并发回 HTTP 302 响应,提示 WebBrowser 控件重定向到另一台服务器。由于执行重定向时 IP 地址发生了变化,因此掩盖目标 URL 的指纹监视器会向我们发送质询。然后我们转发 cookie 以及我们从身份验证服务器收到的其他内容。
现在的问题是,当我们在非生产环境中调试时,由于客户端 IP 保持不变,监视器没有发出质询,我们无法测试我们的更改以确保所有正确的身份验证信息从先前的身份验证服务器的响应转发。
是否可以在重定向之间进行这种客户端 IP 地址欺骗,以便我们测试我们的代码?我为此使用了 Fiddler,据我所知,没有可以修改的属性。会话变量“x-clientip”是一个只读变量。
你们的服务器如何确定客户端的IP地址?例如,如果它查看
X-Forwarded-For
请求标头,Fiddler 可以轻松更改它。
如果没有,不,Fiddler 本身没有某种神奇的方法来使流量源自不同的 IP 地址。如果您的计算机有多个 NIC,Fiddler 可以使用 X-EgreesIP 将第二个请求定向到通过特定 IP 地址的出口。或者,您可以让 Fiddler 通过在具有不同 IP 地址的不同计算机上运行的不同代理(例如,另一个 Fiddler 实例)定向给定请求;使用
X-OverrideGateway
标志来做到这一点。
抱歉将此添加为答案,但它不允许我添加为评论。 @EricLaw 我知道这是一个非常古老的线程,但希望您仍然存在,并且可以提供有关 X-EgreesIP 的更多详细信息以及如何以编程方式设置它?我的意思是我知道这可能很简单,但我补充道:
oSession["X-EgreesIP"] = "10.10.10.123";
我的OnBeforeRequest,它似乎没有任何效果。
您链接中的信息显示了如何配置 fiddler 使用不同的 IP,但这会强制所有流量发送到不同的 IP,我希望如果可能的话以编程方式执行此操作,以便我可以根据特定的详细信息通过不同的 IP 发送请求。