【发布时间】:2010-05-24 20:43:01
【问题描述】:
我正在尝试拼凑一个问题的解决方案。 基本上,我使用 Silverlight 4 和 C# 4.0 来访问魔兽世界的军械库。 如果有人这样做 - 请哦,请提供有效的 .net 4.0 代码。
我尝试运行的代码是(e.Error 包含安全错误):
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!");
}
}
注意事项:
- C# 4.0
- 军械库是一个 XML 文件 - 但我相信如果请求不是来自支持 XML 转换的浏览器,它会恢复为 html。但我认为我并没有走到这一步。
- 军械库上有一个跨域策略文件 - 这可能是错误的原因(不确定!
- 我已上传到生产服务器
- 我正在使用 IIS 网站在本地对其进行测试
- 我要疯了!
- 网站建议可以通过创建 WebProxy 来解决此问题 - 但我不知道如何做到这一点。
如果有人能接受这个挑战并向我们展示它是可能的,那就太好了。我希望先使用非代理解决方案,然后尝试使用代理。
错误详情:
e.Error = {System.Security.SecurityException ---> System.Security.SecurityException:安全错误。 在 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 在 System.Net.Browser.BrowserHttpWebRequest.c__DisplayClass5。
有没有聪明的编码大师可以在睡梦中解决这个问题?
如果你能帮忙,谢谢。
【问题讨论】:
-
你能发布使用的解决方案吗? (WCF服务的实现)
-
好吧,这没有任何意义,因为 wow 不再通过 XML 服务公开他们的数据。耻辱 - 这是一组很棒的数据。
标签: c# silverlight security world-of-warcraft