最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET與ASP互通COOKIES的一點經(jīng)驗

 更新時間:2010年03月10日 23:04:59   作者:  
ASP與ASP.NET互相整合時,其中文COOKIES信息無法被互通共享,當(dāng)使用ASP.NET寫入中文COOKIES信息后,使用ASP進行讀取,讀出來的卻是亂碼,而非中文。
在微軟推出.NET并進行了大規(guī)模的推廣普及之后,ASP.NET逐漸進入了信息化系統(tǒng)開發(fā)的主流。但與此同時,而用ASP開發(fā)的舊系統(tǒng)面則臨被整合,這時,面臨一個問題:ASP與ASP.NET互相整合時,其中文COOKIES信息無法被互通共享,當(dāng)使用ASP.NET寫入中文COOKIES信息后,使用ASP進行讀取,讀出來的卻是亂碼,而非中文。

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

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

  <!-- 全球化此節(jié)設(shè)置應(yīng)用程序的全球化設(shè)置。 -->
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" />

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

  用如下方法進行寫COOKIE操作:
復(fù)制代碼 代碼如下:

  '----------------------------------------------------------------
  ' 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

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

  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”編碼方式解決上面的問題,應(yīng)該是可以的,大家可以試一下,告訴我結(jié)果。

  在ASP.NET中我們一般通過如下方法清除COOKIES信息:
復(fù)制代碼 代碼如下:

  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()

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

相關(guān)文章

  • Asp.Net Core Identity 隱私數(shù)據(jù)保護的實現(xiàn)

    Asp.Net Core Identity 隱私數(shù)據(jù)保護的實現(xiàn)

    這篇文章主要介紹了Asp.Net Core Identity 隱私數(shù)據(jù)保護的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • asp.net+js實現(xiàn)批量編碼與解碼的方法

    asp.net+js實現(xiàn)批量編碼與解碼的方法

    這篇文章主要介紹了asp.net+js實現(xiàn)批量編碼與解碼的方法,涉及前端的jquery post提交及后臺C#處理實現(xiàn)批量編碼與解碼的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • 如何在ASP.NET Core中使用Session的示例代碼

    如何在ASP.NET Core中使用Session的示例代碼

    這篇文章主要介紹了如何在ASP.NET Core中使用Session的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • asp.net源程序編譯為dll文件并調(diào)用的實現(xiàn)過程

    asp.net源程序編譯為dll文件并調(diào)用的實現(xiàn)過程

    這篇文章主要介紹了asp.net源程序編譯為dll文件并調(diào)用的實現(xiàn)過程,非常有實用價值,需要的朋友可以參考下
    2014-07-07
  • .NET?Core使用Redis實現(xiàn)創(chuàng)建分布式鎖

    .NET?Core使用Redis實現(xiàn)創(chuàng)建分布式鎖

    分布式鎖一般用于確保在分布式系統(tǒng)中,同一時間只有一個進程可以執(zhí)行某段代碼,本文將通過.NET?Core使用Redis實現(xiàn)創(chuàng)建分布式鎖,感興趣的可以了解下
    2025-01-01
  • 給Repeater控件里添加序號的5種才常見方法介紹

    給Repeater控件里添加序號的5種才常見方法介紹

    Repeater是我們經(jīng)常用的一個顯示數(shù)據(jù)集的數(shù)據(jù)控件那么我們該怎么為Repeater控件添加序號呢?下面編輯為大家介紹幾種常用的為Repeater控件添加序號的方法
    2013-09-09
  • ASP.NET讀取配置文件的多種方式詳解

    ASP.NET讀取配置文件的多種方式詳解

    ASP.NET?Core?是一個模塊化、高性能的框架,它使用依賴注入來構(gòu)建應(yīng)用程序的各個組件,在?ASP.NET?Core?中,配置文件扮演著至關(guān)重要的角色,下面我們就來看看ASP.NET讀取配置文件有哪些方式吧
    2025-02-02
  • 設(shè)置ASP.NET頁面不被緩存(客戶端/服務(wù)器端取消緩存方法)

    設(shè)置ASP.NET頁面不被緩存(客戶端/服務(wù)器端取消緩存方法)

    設(shè)置頁面不被緩存:客戶端取消緩存、服務(wù)器具端取消緩存的具體實現(xiàn)代碼如下感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • ABP入門系列之分頁功能的實現(xiàn)

    ABP入門系列之分頁功能的實現(xiàn)

    本節(jié)主要講解了如何使用ABP進行后臺分頁,并順帶講解了ABP后臺分頁邏輯的實現(xiàn)方式。同時也演示了如何使用X.PagedList進行前端分頁
    2017-03-03
  • 時間輕松學(xué)會.NET Core操作ElasticSearch7的方法

    時間輕松學(xué)會.NET Core操作ElasticSearch7的方法

    這篇文章主要介紹了時間輕松學(xué)會.NET Core操作ElasticSearch7,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

额尔古纳市| 恩平市| 博乐市| 丘北县| 玉林市| 壶关县| 聂荣县| 汉川市| 泸水县| 白山市| 彭泽县| 永昌县| 三明市| 理塘县| 同德县| 江阴市| 宁国市| 山阳县| 富阳市| 东安县| 白玉县| 隆安县| 珠海市| 仁布县| 高邮市| 扬州市| 河北省| 馆陶县| 阿勒泰市| 泗阳县| 沁阳市| 贵溪市| 普陀区| 牡丹江市| 民县| 永吉县| 阜平县| 沾益县| 壤塘县| 平果县| 太湖县|