Windows上带有python的自动NTLM


问题内容

如何在Windows上通过python使用自动NTLM身份验证?

我希望能够从Windows访问TFS REST API而不用硬编码我的密码,就像从Web浏览器(例如firefox的network.automatic-
ntlm-auth.trusted-uris)一样。


问题答案:

我发现此答案对我非常有用,因为:

  1. 我只打算从Windows运行它,所以可移植性不是问题
  2. 响应是一个简单的json文档,因此无需存储打开的会话

它使用WinHTTP.WinHTTPRequest.5.1 COM对象本地处理身份验证:

import win32com.client
URL = 'http://bigcorp/tfs/page.aspx'    
COM_OBJ = win32com.client.Dispatch('WinHTTP.WinHTTPRequest.5.1')
COM_OBJ.SetAutoLogonPolicy(0)
COM_OBJ.Open('GET', URL, False)
COM_OBJ.Send()
print(COM_OBJ.ResponseText)