Механизация и аутентификация NTLM - PullRequest
1 голос
/ 03 августа 2010

Следующий код генерирует ошибку 401 => Net :: HTTPUnauthorized.

Из журнала:


response-header: x-powered-by => ASP.NET
response-header: content-type => text/html  
response-header: www-authenticate => Negotiate, NTLM  
response-header: date => Mon, 02 Aug 2010 19:48:17 GMT  
response-header: server => Microsoft-IIS/6.0  
response-header: content-length => 1539  
status: 401

Сценарий выглядит следующим образом:


require 'rubygems'  
require 'mechanize'  
require 'logger'  

agent = WWW::Mechanize.new { |a| a.log = Logger.new("mech.log") }  

agent.user_agent_alias = 'Windows IE 7'  

agent.basic_auth("username","password")   

page = agent.get("http://server/loginPage.asp")

Я считаю, что причина 401 в том, что мне нужно пройти аутентификацию с использованием NTLM, но я не смог найти хороший пример того, как это сделать.

Ответы [ 2 ]

2 голосов
/ 24 января 2016
agent.add_auth('http://server', 'username', 'password', nil, 'domain.name')

http://mechanize.rubyforge.org/Mechanize.html

испытываться:

  • Windows Server 2012 R2 + IIS 8.5
  • Рубин 1.9.3
0 голосов
/ 13 февраля 2012

Mechanize 2 поддерживает NTLM-аутентификацию:

m = Mechanize.new
m.agent.username = 'user'
m.agent.password = 'password'
m.agent.domain = 'addomain'
...