我的目标是用SSPI对使用Python 3.5.2到NTLM中的请求库(2.11.1)的客户机进行身份验证,这样用户就不必手动输入域凭据(用于登录到PC)。
我发现了以下可能性,但没有一个对我有用:
HttpNtlmSspiAuth在请求中引发异常:
导入请求 从请求导入HttpNtlmAuth、HttpNtlmSspiAuth
requests.get(站点url,auth=HttpNtlmSspiAuth())
requests-sspi-ntlm总是得到401:
导入请求 从请求导入HttpNtlmAuth
会话=请求。会话() session.auth=HttpNtlmAuth() session.get(“http://ntlm_protected_site.com”)
并且requests-negotiate-sspi还会在请求中触发异常:
导入请求 从请求协商sspi导入HttpNegotiateAuth
r=requests.get('https://iis.contoso.com',auth=HttpNegotiateAuth())
我做错什么了吗?
我自己想出来的。
我适应了请求和python 3这个code和这个与windowsspi交互的module。你可以拿到它here。
包裹requests-negotiate-sspi对我有用。
我可能对PO也有同样的问题,但我太懒了,无法尝试PO的解决方案并将PO的代码集成到我的代码中。谷歌帮了我一把。如果有人遇到sspi.py
ValueError: year 30828 is out of range
引发的相同异常,这是python 3.6的一个已知问题。请看这里:Github-Issue我用python 3.4创建了一个新的conda环境来解决这个问题。然后重新安装一些依赖项以及
requests-negotiate-sspi
,boom,all works。相关问题 更多 >
编程相关推荐