已有頁面里已經設定了session,比如頁面a.aspx頁面設定了session["aa"]="1";
在b.aspx頁面中用HttpWebRequest獲取c.aspx頁面的內容,c.aspx需要用到session["aa"]。
現在在c.aspx頁面里獲取不到session。
b.aspx代碼:
string page = "http://10.0.0.223:105/c.aspx";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(page);
myHttpWebRequest.Headers.Add("Cookie", this.Request.Headers["Cookie"]);//添加上這句后,下面陳述句提示超時
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string content = myStreamReader.ReadToEnd();
已經嘗試過構造ASP.NET_SessionId的cookie,也是取不到session,經測驗HttpWebRequest請求的頁面都是新的會話,也就是新的sessionid。
myHttpWebRequest.Headers.Add("Cookie", this.Request.Headers["Cookie"]);
這句是之前登錄狀態使用cookie時的陳述句,使用cookie可以正常使用,改為session后就出現了這個問題。
有沒有解決過這類問題的朋友,給點建議吧,謝謝了
uj5u.com熱心網友回復:
自身訪問自己干嘛還要用httpwebrequest模擬呢?當然你可以將sessionid傳遞過去
uj5u.com熱心網友回復:
sessionid傳遞到c.aspx后,寫入cookie中不能關聯到實際的session上,session是在AcquireRequestState生成的。如果要傳遞sessionid到頁面,如果能在AcquireRequestState之前設定到cookie,從而識別到自己的seesion的轉載請註明出處,本文鏈接:https://www.uj5u.com/net/100660.html
標籤:ASP.NET
