過去 4 年間、ショップ Web アプリを開発してきました。現在、新しい機能を追加しているため、アプリは構成に応じて 2 つの異なる方法で動作します。
最初の方法は、通常の Web アプリです。
2 番目の方法は、次のように機能します。
- ドメインまたはサブドメインを 1 つの製品に関連付ける
- ユーザーがそのドメインにアクセスすると、ショップは商品ページを表示する必要があります。アプリは、ユーザーがチェックアウト以外のページにアクセスすることを許可しません
- ユーザーが購入ボタンをクリックすると、アプリはユーザーをチェックアウト ページにリダイレクトします。
最初は と考えていServer.Transfer
たので、Global.asax に書きました。
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (check for conditions)
{
Server.Transfer("product.aspx", true);
}
}
このアプローチの最初の問題はセッションでした。product.aspx がロードされるとき、セッションが初期化されていないため、失敗します。
その後、そのコードを挿入しましApplication_PreRequestHandlerExecute
たが、ポストバックで問題が発生しました。に問題があることは既にわかっていServer.Transfer
ましたが、2 番目のパラメーターがtrue
であるため、解決する必要があります。EnableViewStateMac="False"
チェックアウト aspx へのリダイレクトがあるため、も設定しましたが、どちらも機能しません。何をしても、アプリは ViewState の認証に失敗するか、ポストバックに応答しません。
私たちが試した別の解決策は、デフォルト ページをプログラムで変更することでしたが、これは不可能のようです。web.config のデフォルト ページを手動で変更すると、アプリは正常に動作しますが、残念ながらこれは許可されていません。
質問は次のとおりです。
Server.Transfer を使用する必要がありますか (使用できると仮定します)。外部構成ファイルまたはプログラムで、何らかの方法で既定のページを変更できますか? 私たちのアプローチが間違っているだけかもしれませんが、イメージすることはできませんでした。
おー!私はほとんど忘れていました: 私たちは aspx .net Framework 2.0 と C# .net 3.5 を使用しています
うまく説明できたと思います
前もって感謝します!