Интеграция AspDotNetStorefront и Sitecore - PullRequest
2 голосов
/ 02 февраля 2010

Кто-нибудь когда-нибудь пытался интегрировать AspDotNetStorefront и Sitecore? Последние пару дней я пытался придумать, как совместить две системы, но из того, что я могу сказать, это не представляется возможным. Пара проблем, с которыми я столкнулся до сих пор:

  • Аутентификация между ними (AspDotNetStorefront имеет собственную реализацию, Sitecore просто использует / расширяет членство .NET)
  • Основная библиотека DLL для AspDotNetStorefront - это то, что появляется в трассировке стека, когда я получаю желтый экран, но эта DLL скрыта, поэтому я не могу понять, в чем проблема.

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

Есть какие-нибудь мысли о том, как я могу поступить об этом?

EDIT:

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

Проблема 1: Аутентификация между двумя системами.

На самом деле это не так уж плохо, если вы хорошо разбираетесь в билетах для проверки подлинности с помощью форм, чего я не знал в то время, но изучаю достаточно быстро. До тех пор, пока обе системы совместно используют одну и ту же информацию о шифровании, достаточно легко передавать информацию между ними с помощью файлов cookie, как указано ниже в принятом ответе. Другой недостаток заключается в том, что мне нужно было установить CustomerGUID в таблице клиентов AspDotNetStorefront в качестве идентификатора пользователя из пользовательских таблиц Sitecore (стандартное членство в ASP.NET). Пока что этот подход, кажется, работает довольно хорошо (я все еще на стадии проверки концепции.

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

Проблема 2: получение данных о продукте

Этот был немного более хлопотным. У вышеупомянутого веб-сервиса есть несколько проблем, с которыми мне было трудно работать. Однако, поскольку базы данных будут находиться на одном и том же сервере, я просто решил, что, поскольку все, что мне действительно нужно, это цена и идентификатор, я бы пошел дальше и установил столбец ProductGUID каждого продукта в базе данных Storefront в соответствии с идентификатором элемента Sitecore. соответствующего элемента в базе данных Sitecore. Таким образом, мне просто нужен быстрый запрос, чтобы получить ProductID и информацию о цене, которая используется только в нескольких местах. Все остальное будет размещено в Sitecore.

Если у кого-то есть что-то, что можно добавить, не стесняйтесь, насколько я могу судить по Google, на самом деле никто раньше этого не делал, поэтому у меня много проблем с поиском ресурсов по этой конкретной теме.

UPDATE:

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

1 Ответ

1 голос
/ 16 февраля 2010

Я знаю ASPDotNetStorefront и другие системы CMS (но не Sitecore). Если бы я подходил к этому, я бы, вероятно, начал с простого и создал бы собственную структуру URL для страниц контента 'sitecore', которую ASPDNSF направлял бы в Sitecore для обработки. [возможно, замена существующей системы тем в ASPDNSF]. Так, например: URL, такой как www.domain.com/p-1234-aproductpage.aspx, будет обрабатываться ASPDNSF, тогда как www.domain.com/content/123/a-content-page будет отправляться в Sitecore для отображения , Это простое редактирование web.config.

Общий доступ к безопасности между системами должен быть возможен в том же домене, в котором будет доступна информация о файлах cookie (у вас должна быть возможность создавать некоторый код в Sitecore с использованием ASPDNSFCommon.dll и преобразования HttpContext.Current.User в AspDotNetStorefrontPrincipal класс для определения, вошел ли клиент в систему)

Другим способом решения этой проблемы может быть написание функции, которая извлекает контент Sitecore из базы данных на основе идентификатора URL, а затем записывает шаблон ASPDNSF XML, чтобы использовать функцию для извлечения этого контента на основе URL. Например, вы можете создать пользовательскую структуру URL в ASPDNSF, такую ​​как www.domain.com/sc-1234-sitecore-content-item.aspx, которая отправляется в ваш пользовательский код; 1234 используется в качестве идентификатора содержимого sitecore, а шаблон XML извлекает содержимое и отображает его на экране.

Этот второй подход имеет преимущество использования Sitecore для управления контентом, не относящимся к продукту, при сохранении действующего приложения в ASPDNSF. Также есть один набор шаблонов дизайна и все ваши проблемы с безопасностью.

...