2010-07-20 79 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) 
相關問題