2016-11-03 154 views
0

我的目標是通過NTLM和SSPI對使用Python 3.5.2中的請求庫(2.11.1)的客戶端進行身份驗證,以便用戶不必手動輸入她的域憑據(用於登錄到PC)。如何使用Python請求執行NTLM SSPI身份驗證?

我已經找到了以下的可能性,但對我來說沒有工作:

  • HttpNtlmSspiAuth引發在請求一個例外:從requests_ntlm進口HttpNtlmAuth,HttpNtlmSspiAuth

    請求

    導入請求 。 get(site_url,auth = HttpNtlmSspiAuth())




我會這麼做嗎預測錯誤?

+0

你沒有告訴我們你在做什麼。 「沒有人爲我工作」不是一個問題。 –

回答

2

我想出了自己。

我適應了請求和python 3這個codemodule與Windows SSPI交互。你可以得到它here

+0

你可以發佈該代碼嗎? – user1717828

+0

您可以在這裏找到:https://drive.google.com/drive/folders/0B3IIoC4r3p1COHhrZ1pWdUNmclU?usp=sharing – R01k

+0

由於它依賴於win32api,因此它僅適用於Windows。 – R01k

1

requests-negotiate-sspi適合我。

我可能與PO有同樣的問題,但我懶得試用PO的解決方案並將PO的代碼整合到我的代碼中。 Google幫我解決了問題。如果遇到從sspi.py ValueError: year 30828 is out of range引發的相同異常,則這是python 3.6的requests-negotiate-sspi的已知問題。看到這裏:Github-Issue

我解決了這個問題,用python 3.4創建一個新的conda環境。然後重新安裝一些依賴關係以及requests-negotiate-sspi,繁榮,所有作品。