仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 622|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之ASP与ASP.NET互通COOKIES的一点履历

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。asp.net|cookie|cookies在微软推出.NET并举行了年夜范围的推行提高以后,ASP.NET渐渐进进了信息化体系开辟的支流。但与此同时,而用ASP开辟的旧体系面则临被整合,这时候,面对一个成绩:ASP与ASP.NET相互整应时,个中文COOKIES信息没法被互通共享,当利用ASP.NET写进中文COOKIES信息后,利用ASP举行读取,读出来的倒是乱码,而非中文。
厥后经由过程查找材料,一直地理论,终究找到了成绩的本源,中文COOKIES信息在ASP中没法被准确读获得缘故原由为个中文编码格局分歧。
开辟项目Web.config设置文件中有以下信息:
<!--环球化此节设置使用程序的环球化设置。-->
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"/>
据此可知,在没有举行项目特别设置的情形下,体系中的中文COOKIES信息默许是经由过程“utf-8”编码体例举行传送的,而ASP中中文COOKIES信息默许是经由过程“GB2312”编码体例举行传送的,以是ASP与ASP.NET的中文COOKIES信息在默许情形下没法被互通共享,但能够经由过程以下办法得以办理:
用以下办法举行写COOKIE操纵:
----------------------------------------------------------------
Name:WriteCookie(ByValstrCookieNameAsString,ByValstrKeyNameAsString,ByValstrKeyValueAsString)
Parameters:
[ByVal]strCookieName-cookie名字
[ByVal]strKeyName-键名字
[ByVal]strKeyValue-键值。
Return:String
----------------------------------------------------------------
PublicFunctionWriteCookie(ByValstrCookieNameAsString,ByValstrKeyNameAsString,ByValstrKeyValueAsString)AsString
DimobjEncAsSystem.Text.Encoding=System.Text.Encoding.GetEncoding("GB2312")
strKeyValue=System.Web.HttpUtility.UrlEncode(strKeyValue,objEnc)
System.Web.HttpContext.Current.Response.Cookies(strCookieName)(strKeyName)=strKeyValue
EndFunction
以上办法完成了ASP能够准确读取ASP.NET写进的中文COOKIES信息,但同时假如在ASP.NET中将读取过去的中文COOKIES信息间接在前台显现时还会显现为乱码,这是因为ASP.NET以“utf-8”编码体例显现“GB2312”编码体例的中文信息,以是呈现了成绩,能够用以下办法在前台页面准确显现中文信息:
DimuNameAsString=System.Web.HttpContext.Current.Server.UrlDecode(System.Web.HttpContext.Current.Request.Cookies(strCookieName)(strKeyName))
DimobjEncAsSystem.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信息:
SubCleanCookies()
DimiAsInteger
DimcookieAsSystem.Web.HttpCookie
Fori=0ToSystem.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
EndSub
但在经由过程以上办法扫除COOKIES信息并再次登录时ASP将不克不及读取ASP.NET的COOKIES,其缘故原由不知为什么,但在下面的扫除COOKIES信息办法中到场以下语句可办理没法准确扫除COOKIES信息的成绩:
System.Web.HttpContext.Current.Response.Cookies.Clear()
以上为自己在事情中的一些小小履历总结,大概会有禁绝确的中央,看人人批正!
我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。
不帅 该用户已被删除
沙发
发表于 2015-1-19 21:20:45 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-25 19:28:41 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
再见西城 该用户已被删除
地板
发表于 2015-2-3 16:54:41 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-9 03:55:54 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
莫相离 该用户已被删除
6#
发表于 2015-2-26 21:06:21 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
兰色精灵 该用户已被删除
7#
发表于 2015-3-8 17:55:06 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
蒙在股里 该用户已被删除
8#
发表于 2015-3-16 08:46:34 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-22 21:38:37 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 15:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表