2

こんにちはみんな!

マーケティングのウェブサイトの開発を開始し、ユーザーはこのウェブサイトでアカウントを作成できるようになります。wordpress.com、ning.comなどのように、サブドメインを使用してユーザーの領域を分離したいと思います。ユーザーが「john」などのアカウントを作成した場合、Webサイトはjohn.mydomain.comでこれに応答する必要があります。ユーザーエリアですが、同じコードになります(サブドメインを分離します)。

知りたいのですが、Webサイトの正しいアカウントを表示するために(サブドメイン内の)アカウントを識別するコードを作成するにはどうすればよいですか?

PS:もちろん、ウェブサイトを表示するために認証されることはありません。

ありがとう

4

2 に答える 2

2

私の相棒と私はこれを私たちのサイトの1つにしています。ドメインとともにSiteIdを保持するデータベーステーブルがありました。

ベースコントローラーでは、ドメインが着信したときにドメインを解析し、データベースで適切なSiteIdを見つけました。すべてのコントローラーはこのベースコントローラーから継承され、SiteIdはモデルへの各呼び出しに渡されました。

Admin.Site.com -> SiteId = 1
Frank.Site.com -> SiteId = 2

誰かがヒットするAdmin.Site.comと、SiteId 1がモデルに渡され、データを取得するか、データを保存/編集/追加/削除します。

ドメインを取得するために使用したコードは次のとおりです。

public Website CurrentWebsite
{
    get
    {
        if (_website == null)
        {
            var domain = HttpContext.Request.Url.Host;
            _website = _websiteRepository.GetWebsiteByDomain(domain);
        }
        return _website;
    }
}
于 2010-11-11T18:06:58.273 に答える
2

asp.net mvcでのルート処理はドメイン名の後に開始されるため、通常のルート処理を使用してキャッチすることはできません。

ルートが評価される前に、サブドメインをルートデータに追加する(Request.Urlから取得する)ルートハンドラーを作成できます。

于 2010-11-11T18:07:14.583 に答える