我正在尝试使用 python 从我的公司服务器访问页面。第一条线索返回 401:未授权(服务器确实需要域用户名/密码进行身份验证)。而且header内容如下,好像支持3种认证协议,Negotiate、NTLM和Digest,所以在我的理解中,我可以选择其中任何一个,对吧?
Content-Type: text/html
Server: Microsoft-IIS/7.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Digest qop="auth",algorithm=MD5-sess,nonce="+Upgraded+v184080dc2d18fe10d63520db505929b5b5b929ec98692ce010e80d6347b7a35d4027e59e277ac4fe1c257a95196071258a8e0797bf6129f76",charset=utf-8,realm="Digest"
X-Powered-By: ASP.NET
Date: Tue, 06 Aug 2013 09:24:44 GMT
Connection: close
Content-Length: 1293
Set-Cookie: LB-INFO=1065493258.20480.0000; path=/
我正在使用以下 python 代码,但仍然出现 401 unanthorized 错误,谁能告诉我如何实现它?我应该使用 NTLM 吗?提前致谢!
p = urllib2.HTTPPasswordMgrWithDefaultRealm()
p.add_password(None, self.url, username, password)
handler = urllib2.HTTPDigestAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
f = opener.open(self.url)