我正在尝试做一些看似简单但显然不是 - 用NTLM进行身份验证。
文档中的示例(http://www.rubydoc.info/gems/httpclient/2.1.5.2/HTTPClient)看起来很简单,但是当我尝试它时,我总是得到401。
我在IIS中创建了一个简单的网站,需要NTLM。我测试了这个在IE& amp;铬。
然后我
require 'httpclient'
require 'pp'
require 'kconv' #seemed to be needed due to a bug..
require 'rubyntlm' # probably not needed directly?
domain = 'http://qvcluster1/'
url = 'http://qvcluster1/default.htm'
user = 'testuser'
password = 'testpassword'
client = HTTPClient.new
client.set_auth(nil ,user,password)
r = client.get("http://qvcluster1/default.htm")
pp r
根据我的理解,它没有更多,但它失败了
这是我从最后一行得到的结尾:
@reason_phrase="Unauthorized",
@request_absolute_uri=nil,
@request_method="GET",
@request_query=nil,
@request_uri=#<URI::HTTP http://qvcluster1/default.htm>,
@status_code=401>,
任何建议都表示赞赏!
顺便说一句,我只是从卷曲测试,这很好用:
"C:\Program Files\cURL\bin\curl.exe" --ntlm -u testuser:testpassword http://qvcluster1/default.htm
答案 0 :(得分:0)
虚假警报 - 事实证明,Web服务器与域控制器通信存在问题,因此它会弄乱身份验证。我删除并重新添加到域中,现在一切都很好!