2

Microsoft Dynamics CRM 服务使用 NTLM 身份验证,这使得使用 suds 从 python 进程连接到它有点复杂。我正在寻找一个代码示例,它将:

  1. 发送和接收来自RetrieveAttributeRequest
  2. 发送和接收Execute请求的响应。

这必须使用 Python 2.6 或 Python 2.7,而不是 Python 3。我已经有一个使用 curl 来执行此操作的工作实现,但它在最好的时候是不稳定的,作为我在这个工具中的其他一些工作的一部分,我会喜欢清理它并使用 python/suds 使其运行。

4

2 回答 2

5

我知道这有点晚了,但希望它会对某人有所帮助。

NTLM 身份验证已添加到版本 0.3.8中的 suds中。

from suds.transport.https import WindowsHttpAuthenticated
from suds.client import Client

url = 'http://crmurl/XRMServices/2011/Discovery.svc?wsdl'
ntlm = WindowsHttpAuthenticated(username='DOMAIN\username', password='password')
client = Client(url, transport=ntlm)
于 2013-08-15T00:50:58.330 回答
0

我不知道这是否对您有帮助,但我使用PycURL来通过 NTLM 代理。

这是一个代码片段:

    c = Curl()

    c.setopt(URL, 'http://www.somesite.com')
    c.setopt(FOLLOWLOCATION, 1)           # follow redirects
    c.setopt(MAXREDIRS, 5)              # max redirects
    c.setopt(PROXY, 'proxy.somesite.com')
    c.setopt(PROXYUSERPWD, 'DOMAIN/USER:PASSWORD')
    c.setopt(PROXYAUTH, HTTPAUTH_NTLM)    # use NTLM

    c.perform()

这是关于该对象的文档。Curl

于 2010-09-30T07:11:40.413 回答