2016-01-22 3 views
0

J'essaye de télécharger le fichier sur le serveur, mais à la place des données sont écrites dans l'erreur. S'il vous plaît dites-moi ce qui ne va pas. Quand j'utilise ce code sur "http://localhost:xxx" tout fonctionne bien. WebClient myWebClient = new WebClient(); myWebClient.DownloadFile(remoteUri, Server.MapPath("~/test/" + "test.xml")); WebClient DownloadFile accès refusé

J'ai mis à jour ma question. Voici mon code complet:

string path1 = "certificate1.p12"; 
string path2 = "certificate2.crt"; 
X509Certificate2 cert1 = new X509Certificate2(Server.MapPath(("~/test/") + path1), "", X509KeyStorageFlags.MachineKeySet); 
X509Certificate2 cert2 = new X509Certificate2(Server.MapPath(("~/tets/") + path2)); 
CertificateWebClient2 myWebClient = new CertificateWebClient2(cert1, cert2); 
string remoteUri = "https://xxxxx"; 
string path = "test.xml"; 
myWebClient.UseDefaultCredentials = true; 
myWebClient.DownloadFile(remoteUri, Server.MapPath((@"~/Files/") + path)); 


public class CertificateWebClient : WebClient 
{ 
    private readonly X509Certificate2 certificate1; 
    private readonly X509Certificate2 certificate2; 

    public CertificateWebClient(X509Certificate2 cert1, X509Certificate2 cert2) 
    { 
     certificate1 = cert1; 
     certificate2 = cert2; 
    } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); 
     System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj, X509Certificate X509certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors) 
     { 
      return true; 
     }; 

     request.ProtocolVersion = HttpVersion.Version10; 
     request.Method = "Post"; 
     request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.UseDefaultCredentials = true; 
     request.ContentLength = 0; 
     request.ClientCertificates.Add(certificate1); 
     request.ClientCertificates.Add(certificate2); 
     return request; 
    } 
} 
+0

montrent l'erreur s'il vous plaît –

Répondre

0

Essayez avec les informations d'identification par défaut.

WebClient myWebClient = new WebClient { UseDefaultCredentials = true }; 
myWebClient.DownloadFile(remoteUri, Server.MapPath("~/test/" + "test.xml")); 
+0

Je l'ai essayé, mais la même erreur – IgorDn

0

Vérifiez si le téléchargement est bloqué par votre serveur proxy. Dans ce cas, utilisez le code suivant:

using (var webClient = new WebClient()) 
{ 
    // Obtain the 'Proxy' of the Default browser. 
    IWebProxy webProxy = webClient.Proxy; 

    if (webProxy != null) 
    { 
     // Use the default credentials of the logged on user. 
     webProxy.Credentials = CredentialCache.DefaultCredentials; 
    } 

    // Do stuff 
} 
+0

malheureusement, ce ne me aide – IgorDn