使用suds+python-ntlm访问SharePoint Web Service (完美解决Windows的NTLM验证问题)

SharePoint Server 2007 默认是使用ntlm协议验证用户登陆用户的,只使用python常用的WebService 工具包是无法通过NTLM验证的.经过研究,终于找到了完美的解决方案。
  python-ntlm(官网地址:http://code.google.com/p/python-ntlm/)模块给urllib2模块提供了ntlm验证功能,而suds是基于urllib2实现的Web Service工具包,所以只要把两者结合来使用就可以实现python访问SharePoint Web Service的功能了。
  经过研究suds的代码发现,suds是通过使用Transport进行基本的用户验证,它只提供了一个简单的HttpTransport。当然,这个HttpTransport是不支持NTLM验证,所以我实现了自已的WindowsTransport来解决这个问题。
  
WindowsTransport      
在代码里,WindowsTransport是继承HttpTransport,关键是通过python-ntlm的HTTPNtlmAuthHandler完成urlopener的创建,由这个opener里完成ntlm验证。
  最后是测试代码:
Test
  输出的结果:
Result

你可能感兴趣的:(web Service)