Silverlight SecurityException - PullRequest
       15

Silverlight SecurityException

5 голосов
/ 17 ноября 2010

Я отправляю данные на сервер и успешно выполняю BeginGetRequestStream, затем EndGetRequestStream, записываю мои данные POST в заполнение RequestStream и вызываю BeginGetResponse.

BeginGetResponse успешно возвращается, и я затем вызываю:

Dim response As HttpWebResponse = CType(MyHttpRequest.EndGetResponse(asynchronousResult), HttpWebResponse)

В этой строке выдается следующая ошибка SecurityException:

{System.Security.SecurityException ---> System.Security.SecurityException: ошибка безопасности.
в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult)
в System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClass5.b__4 (Объект sendState)
в System.Net.Browser.AsyncHelper. <> c__DisplayClass2.b__0 (объект sendState)

--- Конец внутренней трассировки стека исключений ---
в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта)
в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
at EtsyV2NetSL.WebQuery.POST_ResponseCallback (IAsyncResult asynchronousResult)}

Итак, моей первой мыслью было, что меня блокирует сервер с их clientaccesspolicy.xml или crossdomain.xml. Я запустил Fiddler и увидел следующее:

GET http://openapi.etsy.com/clientaccesspolicy.xml > 596 (text/xml)
GET http://openapi.etsy.com/crossdomain.xml > 200 OK (application/xml)

Итак, я проверил их crossdomain.xml и настройки выглядят нормально:

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*"/>
</cross-domain-policy>

Я зашел в тупик, пытаясь решить эту проблему. Я запускаю тестовое приложение на своем компьютере разработчика от VS.

У кого-нибудь есть идеи относительно того, почему Silverlight будет выдавать эту ошибку?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 января 2011

Похоже, что это проблема политики доступа клиента, проверьте это:

http://forums.silverlight.net/forums/p/26566/90867.aspx

Это сработало для меня.

1 голос
/ 18 ноября 2010

Я столкнулся с очень похожей проблемой сегодня - однако вместо HTTP POST я пытался сделать вызов службы WCF.

Вот комментарий, который я поместил в свой код - пожалуйста, дайте мне знать, еслиего недостаточно ясно, чтобы быть полезным.

// NB: Cross-domain bug
// If you end up here with a System.Security.SecurityException "Security error."
// Check that you're not trying to cross zones when making a service call
// (eg: Accessing Trigger Driver TimeSource service on http://IASWEB01/ when accessing the site via usertest.local
//  or any other URI with dots in it - yes it seems crazy)

Кажется, это некоторая «функция» безопасности.При вызове WCF я получил это исключение еще до того, как клиент Silverlight попытался извлечь clientaccesspolicy.xml с целевого хоста.Очень раздражающая проблема без реального решения в поле зрения!

...