0

ページロードにセッションがあります["name"]

このコードを使用して保存する場合:

Stream stream = null;
request = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)request.GetResponse();

この行になると:

response = (HttpWebResponse)request.GetResponse();

再びページロードに移動し、その時点でセッションはnullになります。どうやって???同じページでセッションを維持する方法。この行が検出されたときにクリアされる理由...

4

2 に答える 2

1

セッションがHttpWebResponseで永続化されない理由は、デフォルトでHttpWebResponseはCookieを処理しないためです。ASP.NETは、Cookieを使用して、どのセッションがユーザーに属しているかを識別します。

CookieContainerありがたいことに、これを支援できると呼ばれるヘルパークラスがあります。を作成CookieContainerしてWebリクエストに添付します。後続のリクエストでは、セッションを永続化するために、Cookieコンテナまたはその中のCookieをリクエストに再度添付する必要があります。

CookieContainer cookieJar = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
request.CookieContainer = cookieJar;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

// on a second request, you can use the cookieJar container to pass the session cookie.
于 2010-08-10T12:59:33.307 に答える
0

アプリケーションからWebリクエストを作成しようとしていますが、そこにはセッションではなく、アプリケーションセッションがあります。

データ(名前キーとその値)はセッションに保存されますが、WebRequest.GetResponse()メソッドを呼び出すと、アプリケーションは独自の新しいセッションを開始します。

于 2010-08-10T12:55:41.290 に答える