<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      asp.net 驗證碼session為null的解決方案

          

      最近在做Y集團的訂單系統時,登陸頁面在測試時發現一個以前沒有注意到的問題,登陸頁面需要使用驗證碼,引用了一個生成驗證碼的aspx頁面,在aspx頁面中生成session和驗證碼圖片,在登陸頁面的后臺處理中使用這個session來判斷驗證碼的正確與否。奇怪的是第一次登陸是沒有問題的,可當登陸成功后,在session的有效期間內關閉瀏覽器,然后重啟瀏覽器進入登陸頁面重新登陸,登陸頁面的后臺卻獲取不到session了,刷新驗證碼的頁面也不能使得session被登陸頁面獲取,后來我嘗試把瀏覽器的cookie刪除后再是,結果可以登陸了。這樣原因就找到了,cookie。突然想到session的工作機制,在生成session的時候會向瀏覽器客戶端發送一個會話id,作為cookie保存在瀏覽器,這樣回傳是服務器可以判斷與哪一個用戶會話相對應,突然關閉瀏覽器再重新打開,會話id并沒有發生改變,通過測試發現管理瀏覽器重新打開服務端session會丟失,那么驗證碼頁面重新生成session后卻無法重新獲取的原因可能是,新的session實例的會話id并沒有更新回客戶端,客戶端返回的仍然是之前的會話id(在有效期內),這樣服務器端在對應的時候找不到之前的服務器session會話了,雖然有一份新的服務端session,但是與這個已經對應不上了,這樣就產生了第二次怎么樣也登陸不上去的問題,解決的方法就是在登陸頁面,登陸事件里做如下操作

       if (Session["ValidCode"] == null)

              {

                  Response.Redirect("Account/logoff.aspx");           

                  return;

              }

      logoff.aspx頁面是一個注銷頁面,最后悔跳轉回登陸頁面,

      他的load事件代碼如下

         HttpCookie aCookie;

              string cookieName;

              int limit = Request.Cookies.Count;

              for (int i = 0; i < limit; i++)

              {

                  cookieName = Request.Cookies[i].Name;

                  aCookie = new HttpCookie(cookieName);

                  aCookie.Expires = DateTime.Now.AddDays(-1);

                  Response.Cookies.Add(aCookie);

              }

              Response.BufferOutput = true;

              Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));

              Response.Cache.SetCacheability(HttpCacheability.NoCache);

              Response.AppendHeader("Pragma", "No-Cache");

              Response.Buffer = true;

              Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);

              Response.Cache.SetExpires(DateTime.Now.AddDays(-1));

              Response.Expires = 0;

              Response.CacheControl = "no-cache";

              Response.Cache.SetNoStore(); 

              FormsAuthentication.SignOut();

              Response.Redirect("../default.aspx");

      據msdn文檔的意思說,Response.Redirect()在這里的作用很重要,可以重新建立起會話;可能沒必要這么麻煩,可能只需一次Response.Redirect()重載自己就夠了,這個我沒有實驗。

      實測有效。記錄一下以備后查。

      posted @ 2013-10-30 11:09  鄭某  閱讀(1935)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩亚洲欧美中文高清| 国内精品伊人久久久影视| 精品国产中文字幕第一页| 成在线人视频免费视频| 黄色大全免费看国产精品| 亚洲色一色噜一噜噜噜| 慈利县| 成在线人视频免费视频| 成人动漫综合网| 在线观看潮喷失禁大喷水无码| 久热这里只有精品12| 成人国产精品免费网站| 国产精品不卡一区二区在线| 国产白嫩护士在线播放| 国产av午夜精品福利| 国产精品美女一区二三区| 国产女人高潮视频在线观看| 蜜桃久久精品成人无码av| 国产高清在线精品一区不卡| 又黄又爽又色的少妇毛片| 国产亚洲精品AA片在线播放天| 91福利视频一区二区| 日韩av天堂综合网久久| 偷偷色噜狠狠狠狠的777米奇| 日本肉体xxxx裸交| 亚洲精品国模一区二区| 少妇人妻互换不带套| 久久久久四虎精品免费入口| 亚洲国产午夜精品福利| 国产又爽又黄又刺激的视频| 97国产精品人人爽人人做| 日韩中文字幕人妻一区| 国内精品久久黄色三级乱| 欧洲美女黑人粗性暴交视频| 综合色天天久久| 人人玩人人添人人澡超碰| 国产av一区二区麻豆熟女| 日本另类αv欧美另类aⅴ| 色综合久久天天综线观看| 精品麻豆国产色欲色欲色欲WWW| 久久99日韩国产精品久久99|