erreur de sécurité WebClient lors de l'accès au monde du manège militaire de warcraft
-
04-10-2019 - |
Question
Je suis en train de rassembler une solution à un problème. Fondamentalement, je suis en utilisant Silverlight 4 avec C # 4.0 pour accéder au monde du manège militaire de warcraft. Si quelqu'un a fait cela -. S'il vous plaît oh s'il vous plaît fournir le travail .net Code 4.0
Le code que je utiliser est (e.Error contient une erreur securtiy):
private void button10_Click(object sender, RoutedEventArgs e)
{
string url = @"http://eu.wowarmory.com/guild-info.xml?r=Eonar&n=Gifted and Talented";
WebClient wc = new WebClient();
// HOW DO I ADD A USER AGENT STRING (RESPONSE MAY VARY (I.E. HTML VS XML) IF PAGE THINKS CALL IS NOT CAPABABLE OF SUPPORTING XML TRANSFORMATIONS)
//wc.ResponseHeaders["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)";
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri(url));
}
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string result = e.Result;
XDocument ArmouryXML = XDocument.Parse(result);
ShowGuildies(ArmouryXML);
}
else
{
MessageBox.Show("Something is complaining about security but not sure what!");
}
}
Notes:
- C # 4.0
- Le manège militaire est un fichier XML - mais je crois qu'il revient à la demande html devrait pas être d'un navigateur qui supporte de transformation XML. Mais je ne pense pas que je reçois ce jour.
- Le manège militaire a un fichier de stratégie de domaine croix là-dessus - cela peut être la cause de l'erreur (pas sûr
- Je l'ai téléchargé sur un serveur de production
- Je le tester localement en utilisant le site web IIS
- Je vais fou!
- Des sites Web ont fait la suggestion que ce problème peut être résolu en créant un WebProxy -. Mais je ne le premier indice comment faire
Ce serait formidable si quelqu'un pouvait relever ce défi et nous montrer tout ce qu'il est possible. Je préfère une solution non-proxy, puis essayez un proxy.
Les détails de l'erreur:
e.Error = {System.Security.SecurityException ---> System.Security.SecurityException: erreur de sécurité. à System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) à System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClass5.
Les codeurs maîtres intelligents là-bas qui peuvent résoudre ce dans leur sommeil?
Merci si vous pouvez aider.
La solution 3
RESOLU - utilisé un service WCF pour agir en tant que proxy en raison de la sécurité inter-domaine et les restrictions de modification d'en-tête. Merci pour tous les conseils.
Autres conseils
Lors de l'exécution d'une application Silverlight dans un navigateur, l'application silverlight ne peut faire des demandes à des URL à partir du même domaine que l'application a été installé. Par exemple, si votre application silverlight est installé à partir http://yoursite.com/yourapp.xap
, vous ne pouvez faire des demandes WebClient à d'autres URL sur http://yoursite.com/
. Vos options ici sont soit créer un script proxy qui demande à l'Armurerie WoW de votre serveur, et que votre application silverlight a frappé ce proxy, ou exécuter le silverlight hors navigateur et demander la pleine confiance.