ntlm example

S

sean nakasone

Can someone please provide me with a simple ntlm example?

Basically, I just want to make an HTTP GET request to my web site, but it
does not work because it requires NTLM authentication. Here's what I'm
doing, but I need NTLM incorporated.

require 'socket'
client = TCPSocket.open('amfmweb', 80)
client.send("GET /gviewer HTTP/1.0\n\n", 0) # 0 means standard packet
client.shutdown( 1 )
response=client.readlines
puts response
client.close


thanks,
Sean.
 
K

Kohei Kajimoto

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,787
Messages
2,569,630
Members
45,335
Latest member
Tommiesal

Latest Threads

Top