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();
}