Я пытаюсь написать функцию в моем приложении Silverlight, которая запрашивает определенную страницу, которая не существует в том же домене, где размещено мое приложение Silverlight.
Например:
Однако это создает исключение SecurityException:
{System.Security.SecurityException:
Ошибка безопасности. в
System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse (IAsyncResult
asyncResult) в
System.Net.Browser.ClientHttpWebRequest.EndGetResponse (IAsyncResult
asyncResult) ...}
Насколько я понимаю, это связано с ограничением междоменных запросов, и были найдены сообщения, в которых упоминалось, что эта статья (http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx) может быть связана.
Вот мой код:
public static void CheckPageContentsAsync(CheckPageContentsCallback callback, DependencyObject uiObject)
{
bool result = false;
try
{
HttpWebRequest request = WebRequest.CreateHttp("http://www.mysite.com/MyPage.aspx");
request.BeginGetResponse((asyncHandle) =>
{
try
{
uiObject.Dispatcher.BeginInvoke(new VoidDelegate(() =>
{
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncHandle);
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
string content = sr.ReadToEnd();
if (content.Contains("Value"))
{
result = true;
}
if (callback != null)
{
callback.Invoke(result);
}
}
}), null);
}
catch (Exception excep)
{
throw new Exception("Failed to process response.", excep);
}
}, null);
}
catch(Exception excep2)
{
throw new Exception("Failed to generate request.", excep2);
}
}
Не удалось осознать применимость файлов "clientaccesspolicy.xml" или "crossdomain.xml" в качестве решения.
Может кто-нибудь объяснить, как я могу изменить свое приложение или веб-сервер, с которого я запрашиваю решение этой проблемы?