2

AspDotNetStorefrontとSitecoreを統合しようとした人はいますか?私はここ数日、2つのシステムをうまく連携させる方法を考え出そうとしてきましたが、私が言えることからは実現可能ではないようです。私がこれまでに遭遇したいくつかの問題:

  • 2つの間の認証(AspDotNetStorefrontには独自の実装があり、Sitecoreは.NETメンバーシップを使用/拡張するだけです)
  • AspDotNetStorefrontのメインDLLは、イエロースクリーンが表示されたときにスタックトレースにポップアップするものですが、そのDLLは難読化されているため、問題が何であるかを理解できません。

最大の問題は、既存のAspDotNetStorefrontアプリケーションをeコマースバックエンドとして維持し、Sitecoreを使用して他のすべてを実行する必要があることです。AspDotNetStorefrontにはCMSが含まれていますが、これは実際には基本的なコンテンツページ以外には受け入れられないソリューションです。

私がこれについてどうやって行くのかについて何か考えはありますか?

編集:

私は、このすべてを現在直面しているさまざまな問題に分解し、それぞれを私が知っている限り効率的に解決することにしました。ここにあるものを詳しく説明し、新しいものに遭遇したときに更新します。

問題1:2つのシステム間の認証。

これは、フォーム認証チケットに精通していれば、実際にはそれほど悪くはありません。私は当時はそうではありませんでしたが、十分に早く学習しています。2つのシステムが同じ暗号化情報を共有している限り、以下の承認された回答に記載されているように、Cookieを使用してシステム間で情報をやり取りするのは簡単です。もう1つのキッカーは、AspDotNetStorefront CustomerテーブルのCustomerGUIDをSitecoreユーザーテーブルのユーザーID(標準のASP.NETメンバーシップ)に設定する必要があることです。これまでのところ、このアプローチはかなりうまく機能しているようです(私はまだ概念実証段階にあります。

これを試みる必要がある場合に留意すべきもう1つの点は、AspDotNetStorefrontには、基本的に必要なことをすべて実行するために使用できるWebサービスが付属していることです。同じ暗号化キーを使用しているため、クリアテキストのパスワードを渡すよりも安全にこのサービスを使用してストアフロント側にログインできます(メソッドを自分で作成する必要がありましたが、標準になるとは思いません。間違っているので教えてください)。とにかくすべてがサーバー側で発生するので、それが大したことではないかと思いますが。

問題2:製品データを取得する

これはもう少し面倒でした。前述のWebサービスには、回避するのに苦労したいくつかの問題があります。ただし、データベースは同じサーバー上にあるため、実際に必要なのは価格とIDだけなので、Storefrontデータベースの各製品のProductGUID列をSitecoreアイテムIDと一致するように設定することにしました。 Sitecoreデータベース内の対応するアイテムの。このように、いくつかの場所でのみ使用されるProductIDと価格情報を取得するための簡単なクエリが必要です。それ以外はすべてSitecoreに格納されます。

Googleからわかる限り、誰かが追加するものがあれば、これまで誰も実際にこれを行ったことがないので、この特定のトピックに関するリソースを見つけるのに多くの問題があります。

アップデート:

統合は実際に可能であり、私たちのサイトは1週間半稼働しており、統合に関連する問題はほとんどありません。これは私が個人的なレベルで実際に行うことをお勧めすることではありませんが、実際にはそれをやめることは可能です。

4

1 に答える 1

1

ASPDotNetStorefrontおよびその他のCMSシステムを知っています(Sitecoreは知っていません)。これに近づいたら、おそらく単純なものから始めて、ASPDNSFがSitecoreに処理するように指示するSitecoreの「コンテンツ」ページのカスタムURL構造を作成します。[ASPDNSFの既存のトピックシステムを置き換える可能性があります]。したがって、たとえば、www.domain.com / p-1234-aproductpage.aspxなどのURLはASPDNSFによって処理されますが、www.domain.com / content / 123/a-content-pageはSitecoreに送信されてレンダリングされます。これは簡単なweb.config編集です。

システム間でのセキュリティ共有は、Cookie情報が利用可能になるのと同じドメイン間で可能である必要があります(ASPDNSFCommon.dllとHttpContext.Current.Userのキャストを使用してSitecoreでコードを作成し、AspDotNetStorefrontPrincipalクラスに検出できるようにする必要があります顧客がログインしている場合)

この問題に取り組む別の方法は、URL IDに基づいてデータベースからSitecoreコンテンツを取得する関数を記述し、次にASPDNSF XMLテンプレートを記述して、URLに基​​づいてこのコンテンツを取得する関数を使用することです。たとえば、カスタムコードに送信されるwww.domain.com/sc-1234-sitecore-content-item.aspxなどのカスタムURL構造をASPDNSFで作成できます。1234はサイトコアコンテンツIDとして使用され、XMLテンプレートはコンテンツを取得して画面に表示します。

この2番目のアプローチには、ASPDNSFでライブアプリケーションを維持しながら、製品以外のすべてのコンテンツ管理にSitecoreを使用できるという利点があります。また、1セットのデザインテンプレートとすべてのセキュリティ問題が発生します。

于 2010-02-16T13:57:03.827 に答える