Загрузка Файла, Защищенного NTLM/SSPI, Не Запрашивая Учетные данные Используя Python на Win32?

Я должен загрузить файл на корпоративном сайте Sharepoint с помощью CPython. Существующая кодовая база препятствует тому, чтобы я использовал Ironpython, не портируя код, таким образом.NET WebClient библиотека отсутствует. Я также хочу загрузить файл, не предлагая пользователю сохранить и не предлагая пользователю сетевые учетные данные. Я попробовал другие библиотеки, но у них всех были недостатки:

  • urllib2 плюс python-ntlm: требует, чтобы пользователю/передаче предоставили
  • Автоматизация COM Internet Explorer: требует, чтобы пользователь нажал 'Save'
  • subprocess использование wget или cURL: не мог заставить ни одного проходить проверку подлинности, не запрашивая пользователя/передачу

Я ничего не мог найти в pywin32 это похоже, это сцепляется в urllib2 или обеспечивает эквивалентную функциональность. Так, есть ли способ загрузить файл, не запрашивая учетные данные и не предлагая пользователю нажать 'Save'?

6
задан ThinkingStiff 30 June 2012 в 04:45
поделиться

1 ответ

Я закончил находку какой-то код VB с страницы поддержки Microsoft , которые используются функцию из URLMON.DLL Я реплицировал его одной строкой CTYPES CDEPENT, и он выполнил именно то, что мне нужно было сделать.

ctypes.windll.urlmon.URLDownloadToFileA(0,url,local_file_name,0,0)
  • URL - это местоположение ресурса (в этом случае, файл Excel на сайте SharePoint)
  • local_file_name - это локальный путь и имя файла для сохранения.

Это прошло учетные данные через провод без подсказок.

4
ответ дан 17 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: