0

仮想ディレクトリで子アプリケーションとして実行されるアプリケーションがあります。

親アプリケーションから値を渡したいのですが、Session はアプリケーションごとにキー設定されており、機能しないと思います。

さらに複雑なことに、親アプリケーションは WebForms であり、子アプリケーションは NVelocity MVC です。

仮想アプリケーション間である種のセッションタイプの機能を使用できるようにするトリックを知っている人はいますか?

編集: Web サービスは、私が考えていたものではありません。ログインしているユーザーのユーザー名を子アプリに渡すだけです。さらに、親で Web サービスを呼び出すと、同じセッションが得られないため、どのユーザーかわかりません。

4

5 に答える 5

1

Webサービスが進むべき道のようです。次のようなことができます。

  • WebForms アプリで、何らかの種類のキーが関連付けられたデータベースにデータを作成します。
  • そのキーを URL で NVelocity MVC アプリケーションに渡します。
  • 渡されたキーを使用して、NVMVC アプリケーションが WebForms アプリで Web サービス (REST、XML-RPC、SOAP など) を呼び出せるようにします。

これにより、あらゆる種類のセッションキーイングや Cookie ドメインの問題が回避され、適切に構造化されたデータを渡すことができます。

于 2008-09-15T23:24:18.517 に答える
0

サーバー側のHTTPリクエストを実行できます。C#では次のようになります。

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("/ASPSession.ASP?SessionVar=" + SessionVarName);
req.Headers.Add("Cookie: " + SessionCookieName + "=" + SessionCookieValue);

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream receiveStream = resp.GetResponseStream();

System.Text.Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

StreamReader readStream = new StreamReader(receiveStream, encode);

string response = readStream.ReadToEnd();

resp.Close();
readStream.Close();
return response;

ASP側では、XSSスタイルの攻撃を防ぐために、リクエストがローカルホストからのみ送信されることを確認します。その後、応答はSession変数の値になります。

Cookieの検索は非常に簡単です。SessionCookieはすべて類似した名前を持っているため、適切なCookieが見つかるまでCookieコレクションを調べてください。これは、Cookieがドメイン全体で有効であり、使用しているサブフォルダーだけで有効でない場合にのみ機能することに注意してください。

于 2008-09-15T23:28:44.043 に答える
0

暗号化されたクエリ文字列として単純に渡せないのはなぜですか?

子アプリはそれを復号化して検証することができ、bob はあなたのおじです。

于 2010-02-06T01:51:03.173 に答える
0

ページで従来の ASP フォームを使用して、post を使用して渡し、子アプリで request.form を使用してピックアップします。

于 2009-06-12T14:32:49.420 に答える
0

共有する必要があるデータは、両方のアプリケーションが知っているキーを使用して、両方のアプリケーションがクエリできる場所に保存します。

データベースは、Web サービスが必要ない場合に使用できるものです。

于 2008-10-10T15:20:01.917 に答える