0

現在、顧客が独自のサブドメインを取得する新しいサイトを構築しています。例えば:

user1.mydomain.com
user2.mydomain.com
userDef.mydomain.com
...

このサイトは、IIS、asp.net C# に組み込まれ、実行されています。

そう。多くの仮想ホスト サブドメインがあるためです。私のコードには、データベースに接続してアカウントの ID を確認する関数があります。

SELECT account_ID where account_subdomain = 'user##' LIMIT 1;

ID に応じて、masterpage と contentpage の両方が異なるデータ/デザインを返します。

私の質問は、アカウント ID をセッションに入れる関数 (「アカウント ID」) をどの「イベント」に配置する必要があるかということです。

すべてのページでこれが必要なので、マスターページの page_load に入れようとしましたが、これでは遅すぎます。コンテンツ ページの page_load は、masterpage の page_load の前にレンダリングされると思いますか?

Web ページに何かが書き込まれる前にアカウント ID の確認が行われるように、関数を配置するのに適した場所はありますか?

ありがとう!マット

4

2 に答える 2

1

1 つのオプションは、HttpModule を作成してそこにコードを配置することです。これは、実際のページが処理を開始する前にページ リクエストに到達するためです。これにより、アカウント ID がすべてのページで利用可能になり、必要なイベントの前に設定されます。

最終的にこのルートに進む場合は、コードを PostAcquireRequestState または PreRequestHandlerExecute イベントに配置して、Session を変更できるようにする必要があります。

于 2011-09-24T17:04:38.373 に答える
0

マスター ページの Page_Init イベントにコードを挿入してみてください。コンテンツ ページの Page_Load イベントは、マスター ページの Page_Load イベントの前に呼び出されます。ただし、Page_Init の場合はこれが逆になります。

于 2011-09-26T10:53:57.270 に答える