从Silverlight访问Web服务 - 安全问题

时间:2013-06-15 03:32:57

标签: silverlight youtube-api webclient

我正在尝试从Silverlight到youtube进行简单的WebClient调用。我解除了Microsoft Silverlight站点的代码。

以下是代码:

private void SearchTrack_Click(object sender,RoutedEventArgs e)         {             Uri serviceUri = new Uri(“https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=sara+smile&key=AAAAAAAAAAAAAAA”);             WebClient下载器=新的WebClient();             downloader.OpenReadCompleted + = new OpenReadCompletedEventHandler(downloader_OpenReadCompleted);             downloader.OpenReadAsync(serviceUri);         }

    void downloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            Stream responseStream = e.Result;

            // Continue working with responseStream here...
        }
    }

调用失败,并显示以下错误:

[System.Security.SecurityException] = {System.Security.SecurityException ---> System.Security.SecurityException:安全性错误。    在System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)    在System.Net.Browser.BrowserHttpWebRequest。<> c__DisplayClassa。

如果我只是从浏览器点击URL,则会返回JSON而不会出现问题。

我正在运行VS / Cassini中的应用程序,所以我认为这不是http://blogs.msdn.com/b/silverlightws/archive/2008/03/30/some-tips-on-cross-domain-calls.aspx中确定的FIle系统问题。

非常感谢任何帮助。

百里

1 个答案:

答案 0 :(得分:1)

Here 据说,由于corssdomain访问限制,从silverlight中删除谷歌apis是不可能的。您需要添加一些中间WCF服务,您的SL-app将通过该服务与youtube api进行通信。