Не удается скачать XML с sharepoint с помощью Silverlight. - PullRequest
0 голосов
/ 12 января 2011

РЕДАКТИРОВАТЬ: Переключился на Silverlight 4, и это меня немного дальше.

У меня есть xml, в котором хранятся высокие оценки в библиотеке sharepoint. Сайт sharepoint - https, и я могу нажать «копировать ярлык» xml, и он появляется в браузере, поэтому я знаю, что могу добраться до него.

Я пытаюсь использовать этот XML-файл с помощью веб-клиента в Silverlight следующим образом.

Uri url = new Uri("https://server/HighScores.xml", UriKind.Absolute);

WebRequest.RegisterPrefix("https://",System.Net.Browser.WebRequestCreator.ClientHttp); 
var client = new WebClient(); 
client.Credentials = new NetworkCredential("username", "password", "domain"); 
client.UseDefaultCredentials = false; 
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
client.DownloadStringAsync(url);

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
         string xmlData = e.Result;
         HtmlPage.Window.Alert(xmlData);
    }
}

С этим кодом всплывает моя игра silverlight, но сразу появляется окно входа с учетными данными Windows. Когда я ввожу здесь мои правильные учетные данные, как я сделал в коде, я получаю ошибку followig.

e.Error {System.Security.SecurityException ---> System.Security.SecurityException: ошибка безопасности. в System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) в System.Net.Browser.ClientHttpWebRequest. <> c_ DisplayClass5.b _4 (объект sendState) в System.Net.Browser.AsyncHelper. <> c_ DisplayClass2.b _0 (объект sendState) --- Конец внутренней трассировки стека исключений --- в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Net.WebClient.GetWebResponse (запрос WebRequest, результат IAsyncResult) в System.Net.WebClient.DownloadBitsResponseCallback (результат IAsyncResult)} System.Exception {System.Security.SecurityException}

Любая помощь?

1 Ответ

0 голосов
/ 12 января 2011

Учетные данные не были реализованы для WebClient до Silverlight 4. Возможно, вы используете более раннюю версию?

Silverlight 4 - Учетные данные, мы получили!Mark Monster 2 декабря 2009 г.

Редактировать: Поскольку вы получаете исключения безопасности, возможно, существует проблема с файлом политики междоменного доступа.Вот несколько ссылок, которые описывают два типа файлов политики клиентского доступа, которые будет искать Silverlight / WebClient.

Ограничения доступа к URL в Silverlight

СетьОграничения безопасного доступа в Silverlight

Если вы контролируете https://server/HighScores.xml, у вас не должно возникнуть особых проблем с реализацией файла политики клиентского доступа.

...