2010-07-20 163 views
2

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

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

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

回答

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对象的documentation

+0

现在我们使用curl这里做的工作,但是这意味着我们必须处理序列化和在每次调用反序列化的XML,并用手构建SOAP消息是不好玩。我宁愿有一个解决方案将其抽象出来,而不必亲自写手。 – 2010-09-30 15:06:21

5

我知道这有点晚,但希望它能帮助别人。

NTLM认证被添加到version 0.3.8的泡沫中。

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) 
相关问题