2010-06-12 3 views
2

J'ai le code suivant:Silverlight 4 WebRequest, SSL et de vérification des pouvoirs

public void StartDataRequest() 
    { 
     WebRequest.RegisterPrefix("https://", System.Net.Browser.WebRequestCreator.ClientHttp); 

     WebClient myService = new WebClient 
           { 
            AllowReadStreamBuffering = true, 
            UseDefaultCredentials = false, 
            Credentials = new NetworkCredential("username", "password") 
           }; 
     myService.UseDefaultCredentials = false; 

     myService.OpenReadCompleted += this.RequestCompleted; 
     myService.OpenReadAsync(new Uri("Url")); 
    } 

    public void RequestCompleted(object sender, System.Net.OpenReadCompletedEventArgs e) 
    { 
     // ... 
    } 

Maintenant, cela fonctionne parfaitement pour, par exemple, Twitter. Mais quand j'essaye de le faire avec un autre service https, j'obtiens une erreur de sécurité.

Ceci est probablement dû au fait que le site Web que j'essaie de connecter ne possède pas non plus de fichier crossdomain.xml. Y a-t-il un moyen de contourner cela? Ou le fichier doit-il vraiment être là? Merci.

Répondre

2

Oui, le serveur doit avoir un fichier ClientAccessPolicy.xml ou un fichier crossdomain.xml. Le seul moyen que je connaisse pour contourner ce problème est de vous faire un service côté serveur pour agir comme un proxy.