Eric
2006-04-04 16:30:45 UTC
Hello! I've got a TSP (Telephony Service Provider) that makes a Webservice
call. The code to call the Webservice has been auto-generated by Visual
Studio (uses WinINet, atlsoap.h, etc.). The problem is that on one machine
HttpSendRequest (within atlsoap.h) receives a 401 error and later in my code
I get an E_FAIL result. The thread that makes the call runs under a specific
user account, because I expect an NTLM auto-login. When I try the same code
with the same user account on another machine, it works. There are no
differences on the Webservice side based on the IP address or so. Using a
network analyzer I've seen that on the machine where it works the protocol
looks just fine (first anonymous call, answer 401 with NTLM support, second
call with NTLMSSP_NEGOTIATE, answer 401 with NTLMSSP_CHALLENGE, third call
with NTLMSSP_AUTH, with answer 200 OK). On the machine where it doesn't work
it looks like this: first anonymous call, answer 401 with NTLM support. But
no continuation. Both machines have same cookie-settings in IE, same proxy
settings in IE, same settings for auto-logon in intranet in IE.
Questions:
- How does the automatic logon procedure work within HttpSendRequest (there
is no code that calls HttpSendRequest a second time)?
- Why doesn't it even try to connect with NTLM?
- Any other ideas what I could check about what the difference on the two
machines is?
- Other suggestions?
Eric
call. The code to call the Webservice has been auto-generated by Visual
Studio (uses WinINet, atlsoap.h, etc.). The problem is that on one machine
HttpSendRequest (within atlsoap.h) receives a 401 error and later in my code
I get an E_FAIL result. The thread that makes the call runs under a specific
user account, because I expect an NTLM auto-login. When I try the same code
with the same user account on another machine, it works. There are no
differences on the Webservice side based on the IP address or so. Using a
network analyzer I've seen that on the machine where it works the protocol
looks just fine (first anonymous call, answer 401 with NTLM support, second
call with NTLMSSP_NEGOTIATE, answer 401 with NTLMSSP_CHALLENGE, third call
with NTLMSSP_AUTH, with answer 200 OK). On the machine where it doesn't work
it looks like this: first anonymous call, answer 401 with NTLM support. But
no continuation. Both machines have same cookie-settings in IE, same proxy
settings in IE, same settings for auto-logon in intranet in IE.
Questions:
- How does the automatic logon procedure work within HttpSendRequest (there
is no code that calls HttpSendRequest a second time)?
- Why doesn't it even try to connect with NTLM?
- Any other ideas what I could check about what the difference on the two
machines is?
- Other suggestions?
Eric