C# 如何处理自定义代理身份验证

C# 如何处理自定义代理身份验证,c#,nginx,proxy,reverse-proxy,squid,C#,Nginx,Proxy,Reverse Proxy,Squid,第三方希望我们通过他们的代理之一连接到他们的服务。但是,他们希望我们使用基于web的代理,而不是VPN,例如 我认为这本身不太难解决,但它们具有额外的安全级别,因为代理本身需要一个自定义授权头,该头等于 yyyymmddhhmmssfff+':'+Base64格式的GMT时间戳(HMAC-SHA256(ConvertToUTF8(代理Url+'\n'+服务Url+'\n'+机密)) 此授权标头仅在180秒内有效,因为它包含必须为每个url生成的请求服务url。POST或GET参数似乎不需要编码

第三方希望我们通过他们的代理之一连接到他们的服务。但是,他们希望我们使用基于web的代理,而不是VPN,例如

我认为这本身不太难解决,但它们具有额外的安全级别,因为代理本身需要一个自定义授权头,该头等于

yyyymmddhhmmssfff+':'+Base64格式的GMT时间戳(HMAC-SHA256(ConvertToUTF8(代理Url+'\n'+服务Url+'\n'+机密))

此授权标头仅在180秒内有效,因为它包含必须为每个url生成的请求服务url。POST或GET参数似乎不需要编码

我们无法在代码(C#)中满足这一要求,因为我们用于对这些服务执行操作的库无法访问它创建的直接HTTP请求,因此我们无法附加授权头

因此,我们必须使用某种中间件代理,它将允许我们向代理发出简单的请求,比如

而这反过来又指向

并将特殊授权标头添加到请求中


我认为像squid这样的代理服务器可能有这样的能力,但我担心只有在编写自定义模块(用C语言)时,我们才能编写配置或脚本

我正在寻找关于如何满足我们需求的建议,从建议可以做到这一点的软件,到甚至建议一个社区/服务,以一定的价格为我们编写它