一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET與ASP互通COOKIES的一點經驗

ASP.NET與ASP互通COOKIES的一點經驗

2019-07-22 10:56服務器之家 ASP.NET教程

ASP與ASP.NET互相整合時,其中文COOKIES信息無法被互通共享,當使用ASP.NET寫入中文COOKIES信息后,使用ASP進行讀取,讀出來的卻是亂碼,而非中文。

在微軟推出.NET并進行了大規模的推廣普及之后,ASP.NET逐漸進入了信息化系統開發的主流。但與此同時,而用ASP開發的舊系統面則臨被整合,這時,面臨一個問題:ASP與ASP.NET互相整合時,其中文COOKIES信息無法被互通共享,當使用ASP.NET寫入中文COOKIES信息后,使用ASP進行讀取,讀出來的卻是亂碼,而非中文。 

  后來通過查找資料,不停地實踐,終于找到了問題的根源,中文COOKIES信息在ASP中無法被正確讀取得原因為其中文編碼格式不同。 

  開發項目Web.config配置文件中有如下信息: 

  <!-- 全球化此節設置應用程序的全球化設置。 --> 
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> 

  據此可知,在沒有進行項目特殊配置的情況下,系統中的中文COOKIES信息默認是通過“utf-8”編碼方式進行傳遞的,而ASP中中文COOKIES信息默認是通過“GB2312”編碼方式進行傳遞的,所以ASP與ASP.NET的中文COOKIES信息在默認情況下無法被互通共享,但可以通過如下方法得以解決: 

  用如下方法進行寫COOKIE操作: 

復制代碼代碼如下:


  '---------------------------------------------------------------- 
  ' Name:  WriteCookie(ByVal strCookieName As String, ByVal strKeyName As String, ByVal strKeyValue As String) 
  ' Parameters: 
  '  [ByVal] strCookieName - cookie名字 
  '  [ByVal] strKeyName - 鍵名字 
  '  [ByVal] strKeyValue - 鍵值。 
  ' Return:   String 
  '---------------------------------------------------------------- 
  Public Function WriteCookie(ByVal strCookieName As String, ByVal strKeyName As String, ByVal strKeyValue As String) As String 
    Dim objEnc As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312") 
    strKeyValue = System.Web.HttpUtility.UrlEncode(strKeyValue, objEnc) 
    System.Web.HttpContext.Current.Response.Cookies(strCookieName)(strKeyName) = strKeyValue 
  End Function 


  以上方法實現了ASP可以正確讀取ASP.NET寫入的中文COOKIES信息,但同時如果在ASP.NET中將讀取過來的中文COOKIES信息直接在前臺顯示時還會顯示為亂碼,這是由于ASP.NET以“utf-8”編碼方式顯示“GB2312”編碼方式的中文信息,所以出現了問題,可以用如下方法在前臺頁面正確顯示中文信息: 

  Dim uName As String = System.Web.HttpContext.Current.Server.UrlDecode(System.Web.HttpContext.Current.Request.Cookies(strCookieName)(strKeyName)) 
  Dim objEnc As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312") 
  uName = System.Web.HttpUtility.UrlDecode(uName, objEnc) 

  以上方法解決了中文COOKIES信息在ASP與ASP.NET中無法被互通共享的問題,不過不知可不可以通過修改Web.config配置文件中的編碼方式,將“utf-8”編碼方式改為“GB2312”編碼方式解決上面的問題,應該是可以的,大家可以試一下,告訴我結果。 

  在ASP.NET中我們一般通過如下方法清除COOKIES信息: 

復制代碼代碼如下:


  Sub CleanCookies() 
    Dim i As Integer 
    Dim cookie As System.Web.HttpCookie 
    For i = 0 To System.Web.HttpContext.Current.Request.Cookies.Count - 1 
    cookie = System.Web.HttpContext.Current.Request.Cookies(i) 
    System.Web.HttpContext.Current.Response.Cookies(CStr(cookie.Name)).Value = "" 
    System.Web.HttpContext.Current.Response.Cookies(CStr(cookie.Name)).Expires = DateAdd(DateInterval.Day, -1, Now) 
    Next 
  End Sub 


  但在通過以上方法清除COOKIES信息并再次登錄時ASP將不能讀取ASP.NET的COOKIES,其原因不知為何,但在上面的清除COOKIES信息方法中加入以下語句可解決無法正確清除COOKIES信息的問題: 

  System.Web.HttpContext.Current.Response.Cookies.Clear() 

  以上為本人在工作中的一些小小經驗總結,可能會有不準確的地方,望大家批正!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 荡娃艳妇系列小说 | 色妞视频一级毛片 | 精品国产一区二区三区在线观看 | 午夜想想爱午夜剧场 | 91噜噜噜在线观看 | 茄子视频懂你更多apl | 91碰碰 | 国产精品va在线观看手机版 | 91精品国产综合久久消防器材 | 日本69sex护士www| 精品福利视频一区二区三区 | 视频免费观看在线播放高清 | 国产美女做爰免费视频软件 | video one 中国按摩 | 美女扒开屁股让男人进去 | 毛片免费毛片一级jjj毛片 | chinesehdxxx吃奶水 | 97视频免费人人观看人人 | 91东航翘臀女神在线播放 | 日本一道一区二区免费看 | 欧美18一videos极品 | 国产成人精品免费久久久久 | 欧美色图日韩 | 免费人成在线观看视频播放 | 韩国美女被的免费视频 | 欧美日韩国产在线人成 | 亚洲四虎| 亚洲国产区男人本色在线观看欧美 | 国产在线综合网 | haodiaocao的视频这里看 | 国产成人8x视频一区二区 | 国产精品性视频免费播放 | 希岛爱理作品在线观看 | poren18美女 | katsuniav在线播放| 欧美一级激情 | 欧美三级一区二区 | 九九精品视频在线播放 | 极品久久| 美琪美腿白丝交小说 | 国语精彩对白2021 |