jmvoodoo
asked on
Web Service Proxy Authentication
I am writing a windows forms client that uses a web reference. I am trying to get my app to work through a proxy server, but I need it to use the user's domain credentials if possible. So far it will work through the proxy, but fails to authenticate using the domain credentials of the currently logged in user.
I would imagine that I need to get them from some built-in OS source, but I can't find any references on how to do that.
-Javier
I would imagine that I need to get them from some built-in OS source, but I can't find any references on how to do that.
-Javier
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Ok, I think I'm getting close, but when I do:
myService.Proxy.Credential s = CredentialCache.DefaultCre dentials
I get "reference isn't set to an instance of an object" or something along those lines (i'm sure you've seen the error before, the Proxy member isn't set). I have my config set to usedefaultproxy, so I thought that the Proxy member would contain the default proxy info, but I guess I was mistaken. So now the question is how to populate the Proxy member of the webservice proxy with the correct proxy info from the system's default proxy... any ideas?
myService.Proxy.Credential
I get "reference isn't set to an instance of an object" or something along those lines (i'm sure you've seen the error before, the Proxy member isn't set). I have my config set to usedefaultproxy, so I thought that the Proxy member would contain the default proxy info, but I guess I was mistaken. So now the question is how to populate the Proxy member of the webservice proxy with the correct proxy info from the system's default proxy... any ideas?
ASKER
I think I may have gotten it. Using myService.Proxy = WebProxy.GetDefaultProxy, but I can't test it from here. I'll test again tomorrow morning.
ASKER
No dice, still getting the same 407 proxy authentication required. I am completely baffled at this point.
ASKER
Ok, so I did a little bit more research, and rewrote the code so I have:
Dim pr As New WebProxy("isaserver", 8080)
Dim cr As New NetworkCredential("login", "password", "domain")
pr.Credentials = cr
WebService.Proxy = pr
WebService.test()
and I'm still getting the 407 proxy authentication required. I have checked the ISA server logs and it's recording it as anonymous as if credentials aren't even being passed by .NET, is there something else I need to do in order to actually send the credentials, other than setting the credentials method of the webproxy object?
Dim pr As New WebProxy("isaserver", 8080)
Dim cr As New NetworkCredential("login",
pr.Credentials = cr
WebService.Proxy = pr
WebService.test()
and I'm still getting the 407 proxy authentication required. I have checked the ISA server logs and it's recording it as anonymous as if credentials aren't even being passed by .NET, is there something else I need to do in order to actually send the credentials, other than setting the credentials method of the webproxy object?
check out your asp.net permisisons and user login... the above one seems to be fine
ASKER
ok, i ran a packet sniffer to figure out what was going on, and it was trying to use digest authentication. Digest authentication was turned on on the server, so it should have worked. However, when I forced it to use Basic using credentialcache.add() it worked like a charm.
After I got that working, I went to do a packet sniff on the original code (that uses the credentialcache.defaultcre dentials) and it worked perfectly... the packet sniffer revealed that it was using Negotiate authentication. Any idea what might cause such sporatic behavior? I really need this to use the stored logon credentials, or I'd just stick with basic auth and leave it at that.
-Javier
After I got that working, I went to do a packet sniff on the original code (that uses the credentialcache.defaultcre
-Javier
ASKER
Thanks!
-Javier