Use the NetworkCredential constructor with username and password as strings. The SecureString constructor resulted in a request without the password in the Authorization header.
using System.Net; var url = "http://url_to_file_to_download"; var user = "your_username"; var password = "the_password_as_a_string"; var request = WebRequest.Create(url) as HttpWebRequest; var cred = new NetworkCredential(user, password); var credCache = new CredentialCache(); credCache.Add(request.RequestUri, "Basic", cred); request.Credentials = credCache; using (var response = request.GetResponse() as HttpWebResponse) { using (var output = response.GetResponseStream()) { // handle the response stream } response.Close(); }