sharepoint генерирует исключение securityException для silverlight, даже если файл clientaccesspolicy.xml установлен

После одного дня тщательного поиска решений я зашел в тупик из-за следующей проблемы:

Я добавляю aspx-страницу с приложением silverlight в качестве функции для моей sharepoint. Приложение получает доступ к sparql-конечной точке из виртуальной службы и прекрасно работает за пределами sharepoint. clientaccesspolicy.xml добавляется в корневой каталог виртуозов и sharepoint. Оба доступны через http:

<?xml version="1.0" encoding="utf-8"?>
 <access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Я даже добавил crossdomain.xml в обоих местах после того, как эта проблема возникла у меня и добавил оба файла явно в путь sharepoint через central-admin.

Я все еще получаю исключение securityException...

Пожалуйста, помогите мне с этим,

заранее спасибо.

1 ответ

Решение

После нескольких лишних часов я выбил его сам.

Для тех, кто прибывает на тот же перекресток: если вы уверены, что crossdomain.xml находится на месте, а ваше приложение silverlight работает за пределами sharepoint, это конкретное исключение безопасности связано не с междоменным нарушением, а, скорее всего, с одним из других Ограничения доступа к URL задокументированы здесь:

Как там сказано: "Когда пользователи получают ошибку, которая является результатом нарушения одной из этих политик доступа, ошибка может не указывать точную причину". Эта ошибка может иметь любую из перечисленных причин. (большая халатность MSDN на мой взгляд)

Поскольку "кросс-схемы доступа" и "кросс-доменного доступа" не видно, остается только "нарушение кросс-зоны". Это означает, что ваше приложение Silverlight и конечная точка службы должны находиться в одной и той же зоне, чтобы иметь возможность общаться (например, через Интернет или Интранет). Поскольку моя SPAQL-конечная точка на данный момент размещена на локальном хосте (адрес в Интранете по умолчанию в IE), а мой адрес разделяемой точки http: //my.comp.name по умолчанию в Интернет-зоне, эта ошибка была выброшена.

Чтобы избавиться от этой ошибки, вы должны либо разместить свою конечную точку на интернет-адресе, либо вручную разместить адрес вашей точки доступа в интрасети. После еще одного гугления я нашел правильную конфигурацию в интернет-опциях.

-> безопасность -> локальная интрасеть -> сайты -> добавить: ваш адрес sharepoint (http: //my.comp.name)

Вот и все, надеюсь, я избавил вас от длительных морщин.

Береги себя...

Другие вопросы по тегам