I am trying to download some data from the reporting services instance on our TFS server.
Given that the code should run on a computer that is not domain-joined, I figured t
I was able to get around this error by using a CredentialCache object, as follows:
WebClient wc = new WebClient();
CredentialCache credCache = new CredentialCache();
credCache.Add(new Uri("http://mydomain.com/"), "Basic",
new NetworkCredential("username", "password"));
wc.Credentials = credCache;
wc.DownloadString(queryString));
Take a look at this link:
HTTP Authorization and .NET WebRequest, WebClient Classes
I had the same problem as you. I have only added one line and it started to work. Try this
private void ThisDoesntWork()
{
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("username", "password", "domain");
//After adding the headers it started to work !
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
wc.DownloadString("http://teamfoundationserver/reports/........"); //blows up wih HTTP 401
}
Try this ...
var credCache = new CredentialCache();
credCache.Add(new Uri("http://teamfoundationserver/reports/........""),
"Basic",
new NetworkCredential("username", "password", "DOMAIN"));
wc.Credentials = credCache;
If that does not work, try replacing "Basic" with "Negotiate".
What happens when you use this?
wc.Credentials = CredentialCache.DefaultCredentials;
Also, are you sure you have the correct username, password and domain?
Also: I wonder if Fiddler is changing around some unicode characters when .net breaks them or something like that. If your user/pass/domain has unicode, try escaping it out like "\u2638"
instead of "☺"
.