我有以下设置:
所有计算机都在同一个域中。 如果我从设置中删除代理并在客户端安全绑定上仅设置以下属性,则一切正常:
成功建立连接,并将正确的凭据传递给服务器。
如果我添加代理但在代理服务器上删除了所需的Windows身份验证,那么一切正常。我在安全绑定上更改的唯一设置是:
ProxyAddress = http://myproxyserver:3128
我可以看到呼叫通过代理服务器使用正确的凭据。
问题是,当我在代理服务器上设置Windows身份验证要求时,代理服务器返回407错误。当我检查日志文件时,我可以看到没有第二次尝试使用正确的凭据响应407错误。我添加的设置是:
Transport.ProxyCredentialType = Windows
我尝试过但没有用的东西:
有关正在发生的事情以及如何解决问题的任何想法?
答案 0 :(得分:0)
可能是问题的两件事。首先,我无法确定这一点,因为我没有尝试使用TransportCredentialOnly,
的Windows凭据,因为传输安全性往往是点对点的。这意味着中间服务(如代理)必须对您的传输凭据本身进行身份验证,并重新建立相应的凭据,以便将请求重复到真实端点。同样,我不确定它如何与Windows凭证一起工作......但鉴于它是传输级安全设置,我怀疑它是否可以通过代理而无需额外设置以确保代理重复相应的凭据。 (请记住,这样做会有效地使您在代理处的安全性无效......在受控设置中这不是问题,但可以在现实世界中。)
其次,绑定配置的transport
元素的security
子元素应该具有proxyCredentialType
设置。如果您的代理干扰了您的安全性,您可能需要针对代理本身进行身份验证。 proxyCredentialType设置定义用于对代理本身进行身份验证的代理凭据类型。然后,您需要在发送邮件之前提供代理凭据。