2016-12-14 86 views
0

我有一个应用程序,其中库正在发出Http请求。我对此没有任何控制权。我需要挂钩请求并将头部放入请求以进行身份​​验证。有没有办法挂钩到一个事件,以便看到传出的请求,并有可能在它们被发送到服务器之前改变它们?C# - 钩入Http请求

我目前正在使用Silverlight,但在.NET,UWP或.NET Core中的任何示例也会很棒。

回答

1

如果您的应用使用浏览器,则可以使用fiddler捕获网络流量或潜在的浏览器(网络选项卡)的F12开发人员工具。

如果您需要在C#(Windows应用程序)级别上捕获和修改外部组件的请求,则会更棘手。你需要低水平的工作;例如,如果应用程序位于IIS上,则可以编写ISAPI筛选器并使用HttpHandler来覆盖和修改请求。

如果它是一个Windows服务或只是一个正常的EXE,那么你的选择是更有限的。请进一步解释。

看看这个帖子:

How to intercept packets sent by a application and check what they have?

+0

是。我知道。但是,我需要在C#级别执行此操作。这并不是要看到交通以特别的方式前进和后退。库正在发送一个没有认证头的请求。图书馆本质上是错误的。我想知道Silverlight或.NET是否有办法挂钩到Http请求事件,以便能够操纵它们。我知道这是一个远射,因为它可能是一个安全漏洞,但只是扔在那里... –

+0

我更新了我的答案。 – nocarrier

+0

谢谢。这段时间你接近了很多,但是ISAPI过滤器并不是我的意思。我不想拦截服务器端的数据包。我试图拦截将在客户端发送之前发送的请求(准确地说是Silverlight)。 Pcap和SharpPcap看起来很有趣。我会着眼于这些。 –