我的目标是通过NTLM和SSPI验证我的客户端使用Python 3.5.2中的请求库(2.11.1),以便用户不必手动输入她的域凭据(用于登录PC)
我找到了以下可能性,但没有一个对我有用:
HttpNtlmSspiAuth在请求中引发异常:
导入请求 来自requests_ntlm导入HttpNtlmAuth,HttpNtlmSspiAuth
requests.get(site_url,auth = HttpNtlmSspiAuth())
requests-sspi-ntlm总是获得401:
导入请求 来自requests_sspi_ntlm导入HttpNtlmAuth
session = requests.Session() session.auth = HttpNtlmAuth() session.get( “http://ntlm_protected_site.com”)
requests-negotiate-sspi也会在请求中触发异常:
导入请求 来自requests_negotiate_sspi导入HttpNegotiateAuth
r = requests.get('https://iis.contoso.com',auth = HttpNegotiateAuth())
我做错了吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
包裹requests-negotiate-sspi适合我。
我可能与PO有同样的问题,但我太懒了,不能尝试PO的解决方案并将PO的代码集成到我的。谷歌帮助了我。如果有人遇到从sspi.py ValueError: year 30828 is out of range
引发的相同异常,则requests-negotiate-sspi的python 3.6是一个已知问题。见这里:Github-Issue
我通过使用python 3.4创建一个新的conda环境来解决这个问题。然后重新安装一些依赖项以及requests-negotiate-sspi
,繁荣,一切正常。