加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

下载受NTLM/SSPI保护的文件而不在Win32上使用Python提示凭据?

发布时间:2020-12-14 02:19:38 所属栏目:Windows 来源:网络整理
导读:我需要使用C Python在企业Sharepoint站点上下载文件.现有的代码库阻止我在不移植代码的情况下使用Ironpython,因此.NET的WebClient库已经用完了.我还想在不提示用户保存的情况下下载文件,并且不提示用户输入网络凭据.我尝试过其他库,但它们都有缺点: urllib2
我需要使用C Python在企业Sharepoint站点上下载文件.现有的代码库阻止我在不移植代码的情况下使用Ironpython,因此.NET的WebClient库已经用完了.我还想在不提示用户保存的情况下下载文件,并且不提示用户输入网络凭据.我尝试过其他库,但它们都有缺点:

> urllib2 plus python-ntlm:需要提供user / pass
> Internet Explorer的COM自动化:要求用户单击“保存”
>使用wget或cURL的子进程:无法在不请求user / pass的情况下进行身份验证

我在pywin32中找不到任何看起来像挂钩到urllib2或提供等效功能的东西.那么,有没有一种方法可以在不请求凭据的情况下下载文件而不提示用户点击“保存”?

解决方法

我最终找到使用urlmon.dll函数的 some VB code from a Microsoft support page我用一行ctypes代码复制它,它完成了我需要它做的事情.

ctypes.windll.urlmon.URLDownloadToFileA(0,url,local_file_name,0)

> url是资源的位置(在本例中,是Sharepoint站点上的Excel文件)
> local_file_name是要保存的文件的本地路径和名称.

这通过线路传递凭证,没有提示.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读