国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Asp.net頁面跳轉(zhuǎn)Session丟失問題

2019-11-17 01:35:15
字體:
供稿:網(wǎng)友

asp.net頁面跳轉(zhuǎn)session丟失問題

原本去年在做項目時,寫好的一記篇博客分享給大家。

Asp.net頁面跳轉(zhuǎn)Session丟失問題

編寫人:CC阿爸

2014-4-2

l 近來在做泛微OA與公司自行開發(fā)的系統(tǒng)集成登錄的問題。在使用Response.redirect跳轉(zhuǎn)時,Session變量會丟失的問題。

經(jīng)過在網(wǎng)上搜索部分解決方案,大致可以歸類為以下幾種情況

  1. 是因為iis回收的原因。有人建議更改session存儲模式

改變session的存儲介質(zhì),默認為InPRoc,還有另外兩種方式,StateServer和SQLServer。

這里把mode改為StateServer,默認的inproc雖然方便好用,但是非常容易出現(xiàn)session丟失的問題,

<sessionState mode="StateServer" stateConnectionString="tcp

  1. IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)協(xié)議默認阻止第三方無隱私安全聲明的cookie,Firefox目前還不支持P3P安全特性,firefox中自然也不存 在此問題了。Mircosoft對此的具體描述可以參見 Privacy in Internet Explorer 6

解決辦法是在服務(wù)器響應(yīng)時輸出P3P的主機頭聲明:

if (context.Request.Browser.Browser.ToUpper().Contains("IE"))

context.Response.Headers.Add("P3P", "CP=CAO PSA OUR");

  1. 當(dāng)頁面中是否了frameset,發(fā)現(xiàn)在每個frame中顯示頁面的SessionID在第一次請求時都不相同,原因是你的frameset是放在一個htm頁面上而不是ASPX頁面。在一般情況下,如果frameset是aspx頁面,當(dāng)你請求頁面時,它首先將請求發(fā)送到Web服務(wù)器,此時已經(jīng)獲得了SessionID,接著瀏覽器會分別請求Frame中的其他頁面,這樣所有頁面的SessionID就是一樣的,就是FrameSet頁面的SessionID。然而如果你使用Html頁面做FrameSet頁面,第一個請求將是HTML頁面,當(dāng)該頁面從服務(wù)器上返回是并沒有任何Session產(chǎn)生,接著瀏覽器會請求Frame里面的頁面,這樣這些頁面都會產(chǎn)生自己的SessionID,所以在這種情況下就會出現(xiàn)這種問題。當(dāng)你重新刷新頁面時,SessionID就會一樣,并且是最后一個請求頁面的SessionID。

綜上發(fā)現(xiàn),我使用的是第三種,因此常會出現(xiàn)session丟失的問題,使用第一二種解決方法未能解決。

于是仔細觀察了httpwatch中截獲的請求,發(fā)現(xiàn)Cookies選項中在跳轉(zhuǎn)之前是空的,這個里面應(yīng)該存儲了當(dāng)前session的id才對,于是就想如果我在Redirect之前就將session的id放到Cookies中是不是就能解決這個問題了呢。果然不出所料,修改完后問題解決了

Response.Cookies.Add(newHttpCookie("ASP.NET_SessionId", Session.SessionID));

Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", Session.SessionID));

Response.Redirect("index.htm",false);

后來想到,這個問題還有一個比較簡單的解決辦法就是:

Server.Transfer("index.htm ")


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石河子市| 屏山县| 澄迈县| 阳新县| 襄汾县| 揭西县| 定结县| 峨山| 克东县| 卫辉市| 郓城县| 双桥区| 吉木萨尔县| 凤翔县| 宁陕县| 苍南县| 庆安县| 凤阳县| 临泉县| 沅陵县| 莱州市| 台江县| 鄂伦春自治旗| 烟台市| 平顶山市| 麻阳| 邳州市| 克山县| 民丰县| 上林县| 山阴县| 丰宁| 崇州市| 长宁区| 咸阳市| 宁海县| 巴林右旗| 桃园市| 长子县| 金寨县| 伊宁县|