所以,我们今天得知,我们的一个客户端防火墙阻止了我们的HTTP请求,因为“[软件]正在向我们的防火墙(Microsoft TMG防火墙)发送匿名数据包,因此防火墙将数据包丢弃为匿名访问是[不]被允许。“
对于我们的连接代码,我们使用带有curl的c ++,如果需要,我们可以回退到IEDownloadToFile。我没有写原始代码,也不是网络程序员,所以我来这里寻求帮助。所以,我的问题是:什么是匿名数据包?我在curl做什么可能导致匿名数据包?我在哪里可以找到有关解决此问题的更多信息?谢谢!
答案 0 :(得分:2)
他们的意思是您的应用必须验证with the firewall。该链接提供了有关TMG产品的大量信息。您的客户可能具有以下配置:
要求用户随时进行身份验证 他们要求Web访问。每个网站 会话需要身份验证
使用此方法时,请注意 以下内容:
禁用匿名Web访问。
Forefront TMG请求用户 凭证并在之前验证它们 它会检查请求 防火墙政策。如果用户失败了 验证,他们的访问请求是 拒绝。
此方法是根据网络定义的。 大多数非交互式客户端,例如 Windows Update客户端,不能 验证,因此被拒绝 访问。
因此,当用户打开他们的Web浏览器并尝试访问网页时,他们会弹出一个窗口,要求提供凭据,因为防火墙拦截了他们的Web请求并发送了自己的身份验证页面。当用户进行身份验证时,防火墙会传递Web流量。
您的自动应用不会通过防火墙进行身份验证,因此防火墙会丢弃数据包,您的流量会被归类为anonymous。
抱歉,我不知道如何使您的应用程序通过防火墙进行身份验证的解决方案。如果您的应用转到特定网址,网站运营商可以将其列入白名单。
根据this page,您应该从curl获得错误407:需要代理身份验证。尝试将这些选项添加到curl初始化中,但仍然存在以交互方式询问用户网络凭据的问题:
CURLOPT_HTTPAUTH: add CURLAUTH_NTLM
CURLOPT_PROXYAUTH: add CURLAUTH_NTLM
set CURLOPT_FOLLOWLOCATION
答案 1 :(得分:1)
在标准网络用语中没有“匿名数据包”这样的东西。你的客户的防火墙正在制定条款,或者在收到消息之前,某个地方的某个地方存在误传。无论哪种方式,您都需要从客户端或防火墙的供应商或文档中获得澄清。
答案 2 :(得分:0)
我同意bdonlan。在http请求的上下文中,“匿名数据包”充其量是含糊不清的。也许他们的意思是没有推荐人代码?或者他们需要http身份验证?或者您需要建立会话密钥才能访问您请求的特定网址?您需要来自客户的实际技术细节。