如何使用 Python 连接到 Microsoft Dynamics CRM 服务器?

发布于 2024-09-10 20:31:56 字数 347 浏览 5 评论 0原文

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

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

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

The Microsoft Dynamics CRM service uses NTLM authentication, which makes connecting to it from a python process using suds somewhat complicated. I'm looking for a code sample that will:

  1. Send and receive the response from a RetrieveAttributeRequest
  2. Send and receive the response from an Execute request.

This must use Python 2.6 or Python 2.7, not Python 3. I already have a working implementation that uses curl to do this, but it's flaky at the best of times, and as part of some other work I have in this tool I'd like to clean it up and make it run using python/suds.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失眠症患者 2024-09-17 20:31:56

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

版本 0.3.8 中向 suds 添加了 NTLM 身份验证。

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)

I know this is a bit late but hopefully it will help someone.

NTLM authentication was added to suds in 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)
故事与诗 2024-09-17 20:31:56

我不知道这对您是否有帮助,但我使用 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 对象的 文档

I don't know if this will be of help to you, but I used PycURL to get through an NTLM proxy.

Here's a code snippet:

    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()

Here's the documentation on the Curl object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文