From: Kohei Kajimoto Date: 2007-03-13T09:32:33+09:00 Subject: Re: ntlm example On 3/9/07, sean nakasone wrote: > Can someone please provide me with a simple ntlm example? The following chunk of code works in my environment: IIS 6.0, ruby 1.8.5 [i386-cygwin], and non-standard rubyntlm 0.1.1. http://rubyforge.org/projects/rubyntlm/ ---- require 'socket' require 'net/ntlm' $user = "koheik" $passwd = "password" $host = "www" $port = 80 def header(s, host, msg) s.print "GET / HTTP/1.1\r\n" s.print "Host: #{host}\r\n" s.print "Authorization: NTLM " + msg + "\r\n" s.print "\r\n" end client = TCPSocket.new($host, $port) # client -> server t1 = Net::NTLM::Message::Type1.new() header(client, $host, t1.encode64) # server -> client msg = '' while(line = client.gets) if /^WWW-Authenticate: (NTLM|Negotiate) (.+)\r\n/ =~ line msg = $2 end break if /^\r\n/ =~ line end if(msg) t2 = Net::NTLM::Message.decode64(msg) t3 = t2.response({:user => $user, :password => $passwd}, {:ntlmv2 => true}) header(client, $host, t3.encode64) end client.shutdown(1) response=client.readlines puts response client.close ---- Thanks, Kohei