2016-09-09 1 views
0

ここで少し奇妙な状況があるかもしれません。私はいくつかの指導が必要です。同じDB/Auth/Model/backendを使用して複数のASP.NET MVCコードファーストサイト - どのように?

私が働いている会社は、別のカスタムプログラムを販売する各サイトで、小規模なサイトの数があります。サイトはトップからボトムに書き直す必要があり、私の上司はログインとオンライン購入/登録が必要であることに同意しています。これは、ユーザーアカウント、ユーザーアカウント内から試用版をダウンロードする機能、ユーザーアカウント内からその試用版を登録する機能、以前の購入/登録の一覧とプロダクトキーを表示する機能を意味します。

事は、私がサインオンつのサイトからは別で使用できるようにしたいです。さらに、これらのすべてを1つの管理インターフェースから(私たちの側で)管理する必要があります。ですから、私はこれがすべて単一のデータベースによって動かされなければならないと考えています。

だけ明確にする: - かなり(マーケティングの違い)によって、時にはだけ微妙に、しかし、いくつかのケースでは、各サイトのフロントエンドは異なることが必要です。バックエンド(AdminインターフェイスとClientインターフェイスの両方)は、サイトのURLに関係なく構造は同じですが、クライアントインターフェイスは異なるコンテンツ(ダウンロードするプログラム、プログラムが登録されているコンピュータの一覧など)を表示する必要があります。 。)どのURLが使用されているかによって異なります。

私の問題は、私は、コード最初の観点からこれを行う方法を全くわからないということです。サイトは小さく、自分で構築するのは非常に簡単ですが、私はそれらをすべて同じソリューション内に入れて、モデルの変更をすべてのサイトに反映させます(私は、モデルIntellisenseは私の友人です!)。

私は領域を調べましたが、領域はグロスの違いを分割する方法のようです内のサイト(リソースファイル - JavaScript、CSSなど)は、ルートに残ります。サイトには異なるリソースファイルが必要です)。私は各セクションがそれ自身の固有のURLを持つ独自のサイトである必要があります。これがサーバーにプッシュされると、私はそれぞれのサイトが独立している必要があります。は、同じWindows Pleskサーバー上に全く別のアカウントで座っています(Pleskは私の選択ではありませんでしたが、パネルインターフェイスを使用します)。 のいずれかの間では、の共通性だけが使用されるデータベースです。実際には、すべてが同じテーブルを使用し、サイト間の違いはほとんどありません。

私の他の問題は、私が適切に単一のソリューション内で複数のプロジェクトを持って、すべてのプロジェクトは一度だけ構築/実装されている同じモデルを利用して実装する方法がわからないということです。私はまだリポジトリ・パターンにジャンプしていないので、その機能に関しては完全に暗いです。

誰かが示唆を持っているなら、それについて聞いてみたいと思います。

+0

この質問は[Programmers SE](http://programmers.stackexchange.com/)に適しています。 – Igor

答えて

0

基本的に、あなたはちょうどあなたがあなたのエンティティとコンテキストを置くクラスライブラリを作成する必要があります。 Identityを使用している場合は、すべてのIdentity関連エンティティクラスもここに配置します。このクラスライブラリでの移行を有効にします。ソリューション内の他のプロジェクトは、このクラスライブラリへの参照を持ちます。個々のプロジェクトのWeb.configファイルに接続文字列を追加する必要がありますが、それ以外のものはすべて機能します。

これは、すべてのプロジェクトが共通のデータベースとユーザーストアから作業するのに十分です。しかし、実際に認証を共有するためには、1つにサインインして、すべてにサインインする必要があります。どのように展開されるかによって、2つのパスのいずれかを取らなければなりません。

  1. すべてのサイトが同じドメインにある場合(異なるサブドメインは問題ありません)。次に、マシンキーを生成し、Web.configで各サイトが同じマシンキーを使用するようにするだけです。 auth cookieはワイルドカードドメインに追加され、そのドメインのサブドメインはそれを見ることができます。マシンキーを共有することは、それぞれが認証クッキーとして設定したものを解読できることを保証することです。

  2. すべてのサイトが同じドメインに属しているわけではない場合は、苦労します。 SSOシステムをセットアップする必要があります.SSOシステムは、スタックオーバーフローの範囲をはるかに超えています。組織のためにSSOシステムを構築することに専念している全社があります。

+0

クライアントが複数の種類のソフトウェアを使用することはほとんどありません。プログラムはすべて大きく異なり、幅広い業界ではクライアントが1つのクライアントインターフェイスにアクセスする必要があります。一度にすべてのクライアントインターフェイスにログインできる必要はありません。しかし、もし彼らがログインしていれば、それらのいずれかにログインすることができます。他の製品を実際にダウンロードして購入したことがないため、他の製品のコンテンツはゼロになります。 –

関連する問題