Проблема с SSL для URL-адреса элемента библиотеки мультимедиа в текстовом редакторе Sitecore Rich Text Editor

Мы используем Sitecore 6.2 и обязаны использовать SSL на сайте администратора Sitecore.

Все работает отлично, за исключением того, что при сохранении содержимого в редакторе Rich Text (нажатие кнопки ПРИНЯТЬ) все URL-адреса элементов медиатеки будут добавлены с «https: // .... (адрес нашего домена)». Например,

"~ / media / 70E900F781E24A66915FA97E283C148E"

to

"https://www.mywebsite.com/~/media/70E900F781E24A66915FA97E283C148E"

Чтобы решить эту проблему, перейдите в редактор HTML и вручную удалите часть «https: // ...». Если мы удалим SSL, то добавление не произойдет и все будет работать нормально.

Я предполагаю, что сайт администратора Sitecore на SSL - не редкость, поэтому мне интересно, есть ли способ справиться с этим. Спасибо!


person Exodues    schedule 12.12.2011    source источник
comment
Интересный вопрос. Я просмотрел некоторый код DLL Sitecore, но не нашел ответа. Может быть, вы можете обратиться в службу поддержки по этому поводу?   -  person Ruud van Falier    schedule 13.12.2011


Ответы (1)


Вероятно, вы могли бы декомпилировать и настроить стандартный класс LinkProvider и изменить метод ExpandDynamicLinks(), заменив https:// на http://

Класс определен в web.config в этой настройке:

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" shortenUrls="true" useDisplayName="false" />
  </providers>
</linkManager>

Вы можете воссоздать его как настраиваемого поставщика и установить defaultProvider для своего настраиваемого класса:

<linkManager defaultProvider="custom">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" shortenUrls="true" useDisplayName="false" />
    <add name="custom" type="CustomUtility.LinkProvider, CustomUtility" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" shortenUrls="true" useDisplayName="false" />
  </providers>
</linkManager>

Если у вас нет декомпилятора, ILSpy можно бесплатно использовать.

person Mark Ursino    schedule 12.12.2011
comment
Страшно звучит. Зачем нужно декомпилировать? Наследования и переопределения должно быть достаточно. - person Michael Baranov; 22.12.2011
comment
Верно, но вам нужно декомпилировать его, чтобы увидеть, как вам нужно изменить метод. В вашей override версии, вероятно, будет много исходного кода, но с некоторыми изменениями. Если вы не декомпилируете для справки, как узнать, что вы вообще собираетесь написать? - person Mark Ursino; 22.12.2011
comment
Я использую Reflector - он позволяет увидеть код с минимальными действиями с моей стороны - person Michael Baranov; 17.01.2012