网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.Net中利用CSS实现多界面两法.
.Asp.net url分页的用户控件 .
.在.NET 2.0 中发送Email.
.ASP.NET编程中的十大技巧.
.有关TextBox中输入字符控制的一种.
.轻松解决asp.net用户ASPNET登录失.
.在Java和.NET平台的加密术比较.
.ASP.NET入门随想之抽象的力量.
.ASP.NET无限分类.
.用Repeater控件显示数据.
.在ASP.Net中应用Javascript.
.重构Session确实让代码简洁干净了.
.用MasterPage 代替 PageBase.
.图片地址防盗链,通过IHttpHandle.
.为XPath自定义函数(因为XPath1..
..NET 2.0 泛型在实际开发中的一次.
.在ASP.NET 2.0中使用页面导航控件.
.解决 ASP.NET 中目录访问权限的问.
.ASP.NET2.0中themes、Skins轻松实.
..NET Framework与.NET Framework.

ASP与ASP.NET互通COOKIES的一点经验

发表日期:2006-6-30


    在微软推出.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()

    以上为本人在工作中的一些小小经验总结,可能会有不准确的地方,望大家批正!

http://hszfzjd.cnblogs.com/archive/2006/06/29/438779.html

上一篇:第一次用.net2.0 LOGIN登陆控件的困惑和解决方法 人气:6923
下一篇:教你制做Web实时进度条 人气:7114
浏览全部ASP.NET的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐