2009-07-02 23 views
7

従来のASPで書かれた古いWebアプリケーションがあります。我々は、アプリケーションを書き換えるためのリソースがありません。1つのASP.NET Webアプリケーション内のクラシック.ASPおよび.NET .aspx Webページ

aspとaspxのページは、同じASP.NET Webアプリケーションで共存できますが、Applicationとおそらくセッション変数をこれらの2つのページ拡張タイプのグループにわたって共有できないものとして表示されます。

私はASP.NETで新しい開発を行いたいと考えていました。理論的には、古典的なASPページを変換することを望んでいました。

これらの2つのタイプのWebページ(クエリ文字列とフォームフィールドを使用して情報を渡す以外)でIIS変数を共有する方法はありますか?

答えて

9

従来のASPとASP.NETの間でセッション変数を共有するための解決策はありません。このMicrosoft Articleに記載されているように、セッションをデータベースに保存することをお勧めします。 ASPとASP.NETの両方でセッション変数にアクセスできます。

+0

x64 Win2K3環境は誰でもこのソリューションで作業していますか? – Daryl

2

直接的な方法ではありません。セッション状態に共有データベースバックエンドを使用することを検討できます。

+0

私は、セッション状態を保存するためにSQLサーバデータベースを使用するasp.netアプリを切り替えるためのWeb設定オプションがあることを知っています。それがうまくいくと思いますかASP.NETページに何らかの影響を与えますか? – ChadD

+1

もちろん、ASP.NETのセッション状態に影響しますが、従来のASPページには影響しません。 ASP.NETの組み込みSQL Serverベースのセッション状態を使用する場合は、ASPで手動で使用する必要があります。 –

1

DBにシンプルなテーブルを作成して、「セッション」情報を保存することができます。従来のaspと.netページの両方で読み書きが可能でした。

1

このデータを渡す唯一の方法は、GET/POST値、Cookie、フラットファイル、またはデータをデータベースに格納することです。これを行うには.Netフレームワークに "Built In"はありません。

1

共有セッション保持者としてデータベースを使用する以外に、別のソリューションがあります。データベースオプションを使用するほうがおそらくこれよりはるかに優れているということを前もって言わなければなりません。しかし...

ASPセッション状態に格納して取得する機能のみを持つASPページを作成できます。あなたのASPXページから、あなたのASPページへのWebリクエストを作成し、ヘッダー、クエリー・ストリング内のセッション情報を返すか、または補充負荷のスクラップを行うことさえできます。あるいは、XMLストリームを返して、貧しい人のWebサービスを作ることもできます。

さらに、セッション情報にアクセスして返す.NETページを作成して、ASP.NETからセッション状態を取得できます。

セキュリティ上の問題を抱えているわけではありません。私はそれがすべて私が言っていることを見た。実際にはデータベースに頼ってセッションIDを渡すのが最善の方法でしょう。

1

私はちょうどこの問題に直面しており、ただ一つの方法で解決できることを伝えたいと思います。ソリューションは比較的簡単で、私の場合、システムフローはdefault.aspxページにログインする必要があり、ユーザー/パスワードの検証が正しい場合は、ページInit.aspが実行され、正確に多くの場合、オリジナルの開発に依存します最後の命令がユーザーをmainmenu.aspxにリダイレクトし、そのページをフォームの.aspxと.aspファイルにリダイレクトした後、セッション変数が作成されてロードされます(実際には最小限必要です)。

このソリューションは、このASP 3.0アプリケーションの設計時に元の開発者が行った選挙と、asp.netページでこれらの値を取得できないと想像できるので、私のために働いていました。

0

私はちょうどこれを通過しました。私の解決策は、nodejsアプリケーションですべてをラップすることでした。 .NET Web APIからJWTトークンを取り出し、すべてのユーザーがペイロードにエンコードされていると主張しています。このトークンは、クライアント上のクッキーに格納されます。Cookieはドメインへのリクエストごとに自動的に送信されるので、ヘッダーからCookie値を読み取り、ペイロードをデコードします(ASP.NETとClassic ASPでは独立して使用します)。内容を読んだら、セッション変数をJWTトークンに埋め込まれたものと一致するように設定することができます。

私はデータベースの同期化が必要で、アプリケーションをOAuth2 openidにセッションから離してしまうため、この方法をお勧めします。

関連する問題