2006年08月03日

 随着Internet的发展,越来越多的人开始接触网络,而Windows 98是我们进入Internet世界的最方便的途径。它提供了比Windows 95更加全面的网络功能,使我们能够轻松进入Internet。要上网,需要以下几个步骤:
  1、安装MODEM和MODEM驱动程序;
  2、安装网络协议;
  3、建立拨号连接。
  其中第一个步骤:“安装MODEM和MODEM驱动程序”,在前面我们讲“安装Windows 98”时,己经做了详细的介绍,如果你还不明白,可以再去复习一下。   安装了MODEM和MODEM驱动程序,还不能进入Internet,要上网,还必须有相应的网络协议才行。网络协议
  安装网络协议要在“网络”属性窗口中进行。双击“我的电脑”,打开“控制面板”,选择“网络”。这就是“网络”属性窗口,这里列出了现在系统己经安装了的网络组件:microsoft友好登录拨号网络适配器TCP/IP协议这几项中,拨号网络适配器和TCP/IP协议是我们上网必不可少的,不过,由于Windows 98对Internet的全面支持,这两个网络组件己经作为系统的默认选项安装好了,我们就不用再安装了,不过你最好能够记住它们。  

  这样就只剩下最后一步“建立拨号连接”了,关闭“网络属性”窗口,再回到“我的电脑”中,双击“拨号网络”图标,在“拨号网络”窗口中有一个“建立新连接”的图标,这个图标的作用就是为我们建立一个拨号连接,用这个拨号连接,我们就可以连入Internet了。
   有一件事你得注意,在上网之前,你必须先申请一个Internet账号,通过这个账号你才能进入Internet。在申请到账号后,你的Internet服务商会给你一个表格,在这个表你要保管好,我们在建立新连接时要用到它。

拨号上网 

 一、设置拨号属性
  

  创建好一个连接后,还要对这个连接进行设置,我们才能用它来拨号上网。在我们创建的这个连接的图标上点鼠标右键,从弹出的菜单中选择“属性”。这就是连接的属性设置窗口了。
  这儿有四个选项卡,在“常规”选项卡中设置上网的电话号码和连接方式。电话号码中是我们上网时要拨的电话号码,因为我们都是使用市内电话来拨号上网的,所以不需要填写区号;下面还有一个“使用区号与拨号属性”复选框,通常我们都把它前面的小勾去掉,这样,区号和国家代码栏就不起作用了。
  

常规选项卡 Hay  Accura 336 Fax +Voice 属性

  “连接方式”项用来设置MODEM的连接方式,点一下“设置”按钮,在这个窗口中我们可以对MODEM进行更为详细的设置。
  “常规”选项卡中可以控制在拨号时扬声器的音量,“最快速度”用来设置MODEM的最快连接速度,一般我们都选择为最快的“115200”;再点一下“选项”,在这个选项卡中有一个“连接控制”项,在这一项中有“拨号后出现终端窗口”复选框,用鼠标在它前面的方框中点一下,选中此项,这样,在MODEM拨完号后会出现一个终端窗口让我们输入用户名和密码。在窗口的最下面是“显示调制解调器状态”复选框,选中它后,会在任务栏右端出现一个小图标,表示MODEM的连接状态。选好后再点“确定”。
  在“连接属性”窗口的“服务器类型”选项卡中设置与服务器有关的各种选项。“拨号网络服务器类型”中选择我们的服务器的类型,通常这一项都要选择“PPP方式”,下面的“高级选项“中共有5个复选框,在默认情况下“登录网络”和“启用软件压缩”两项是选中的,但是我国大部分的Internet服务商都不支持“登录网络”选项,所以,我们把这一项去掉后,MODEM的登录速度会快一些。
  TCP/IP设置最下面的“所允许的网络协议”中设定上网所用的协议,我们只要留下“TCP/IP”就可以了。这个“TCP/IP设置”是“连接属性”中最重要的一个选项,点一下这个按钮。第一项是选择上网的IP地址,一般的个人用户都没有自己固定的IP地址,因此需要选择“已分配IP地址的服务器”这一项,由服务器来动态的为我们分配一个IP地址,当然,如果你有自己的固定IP地址,就选择“指定IP地址”,在下面输入自己的IP。
  在窗口的中间,我们要填入服务器的主控DNS地址和辅助DNS地址。先选择“指定名称服务器的地址”复选框,然后根据申请账号时得到的表格填写好服务商提供的主控DNS地址和辅助DNS地址,填好后点“确定”按钮,这项设置就算完了。其它的设置我们就不用管了,再点一下“确定”按钮,“连接属性”就设置完毕了,下面我们就可以拨号上网了。
  

 二、拨号上网
 

  先连接好你的电话线,打开你的MODEM电源,然后双击我们建立好的连接的图标,出现了Windows 98的拨号窗口。   

最后我再告诉你一点,在你上完网以后,要记着把网络连接断开,否则你的上网费用可就成了一个天文数字了。要断开连接,就在调制解调器状态图标上单击鼠标右键,选择“断开”就行了,连接断开后,这个状态图标上出现了一个红色的小叉。断开连接

2006年05月26日

习惯了一个人的日子
有很多收集泪水的时光
无数次的颓废和徘徊,直到可以直接落在另一个人的肩膀……

习惯了一个人的夕阳
虽然一个人的夕阳难免有点孤独和忧伤
可是那火红的霞光却时常让人涌起莫名的感动
那份热泪盈眶的心情直到有另一个人的分享……

习惯了一个人的想象
虽然一个人的想象难免不切实际,难免充满忧伤
但我仍坚持这样的想象直到有个人走进我的梦想……

习惯了一个人玩骰盅
人生又何尝不是一场赌博?和命运赌
我们永远是个失败者。和生命赌
我们注定就是个天生的输家。这些其实我都不在乎
最关心的是:和爱情赌,会是个什么结局……


习惯了一个人吃一个梨
也许有时候会吃不掉,可是还是信守着那个传说:分梨=分离
恐惧着离别得无奈和痛苦。相信有一天会有另一个人的出现
一个与我一样相信这个传说的人……

习惯了一个人仰望天空
这样的钢筋水泥让人约束得窒息
这样的文明远没有田野里的原始让人亲切得舒服
也许是我太固执的缘故,没有家的归属,一个不完整的天空……


习惯了一个人的舞台
一个人的舞台虽然是那样的空旷


可是却有着足够的空间来让我表演
慢慢地
我由兴奋不已而感到无趣
原来再好的演员也需要热情的观众……

习惯了一个人读月
其实月亮也有很多烦恼的心思
我们互相倾诉彼此的心境
它总是默默地问我:为什么你总是独自一人
我说:我有影子陪我!它笑了
为什么另一个人也总是这样说

习惯了一个人的远行
没有牵挂,没有方向,随着年轻狂想而释放自我的彷徨
一个人的旅途并不是没有诗情画意
当然……两个人的世界会更精彩

习惯了一个人看雨
一个人看雨真的很有哲理
雨水先是一滴一滴,渐渐的一条一条
最后一片一片……雨和人一样的
人起先也是一个一个的,到了后来有了自己的小家
再到后来就有了一个大家庭。

现在的你是一滴,一条还是一片呢

习惯一个人的音乐
一个人的音乐是心灵最深处地呻吟
也许只有自己才听得懂,可是却依然希望把未来的世界来打动
音符里是一份含泪的沧桑,无限的困惑
痴迷的绝望……
相信吧,总会有一个人来听你的绝唱

2006年05月12日

1、正确的思考

先正确的评判自己,才有能力评断他人。
你是否欺骗别人,或是自己?想清楚再回答。
三思而后行的人,很少会做错事情。
企图说服不用大脑的人,是徒劳无功。
认为整个世界都错的人,极可能错在自己。

2、行动

观察走在你前面的人,看看他为何领先,学习他的做法。
忙碌的人才能把事情做好,呆板的人只会投机取巧。
优柔寡断的人,即使做了决定,也不能贯彻到底。
善意需要适当的行动表达。

3、相信

相信你做得到,你一定会做到。
不断告诉自己某一件事,即使不是真的,最后也会让自己相信。

4、警觉

对于那些使狗和儿童感到畏惧的人应提高警觉。
警觉过度犹如不及,使人变得多疑。
不要羡慕邻居的篱笆更绿,或许荆棘多于青草。
对于满口“别人都说—–”的人,问他“别人”是谁,就会看到他张口结舌的窘态。
陌生人过分热心帮你做事时 ,当心他别有居心。

5、挑战

如果你想要更上一层楼,就为别人提供超出预期更多更好的服务。
每一次都尽力超越上次的表现,很快你就会超越周遭的人。
亨利福特悬赏2.5万元,征求有办法让他在每一台汽车上节省一个螺钉和螺冒的人。
你让我工厂的每个环节节省10分钱,我让你平步青云。
如果你一直保持现状,10年后将会如何?
在你有把握做得更好之前,不要破坏任何东西。

6、主要目标

你的人生想要什么?你能付出什么作为回馈?
成功的人只想自己要的――而非自己不要的。
不要管过去做了什么,重要的是你将来要做什么?
如果你不知道你自己的一生要的是什么,你还想得到什么?
智者除了有所为,还能有所不为。
为自己想要的忙碌,如此即无暇担忧你不想要的。
不要怕目标定得太高,你可能需要退而求其次。
如果你不会知道自己要什么,别说你没有机会。

7、合作

请求比命令能得到更好的结果。
善于下命令的人,必定能够服从命令并且执行。
乐意合作产生支持的力量,强迫服从导致失败的结果。
告诉上司你想要什么,看他是否愿意帮助你去排除障碍。
友善的合作比煽动更得人心。
合作必须从部门领导开始,效率亦然。
狼狈为奸绝非合作。
除非你自己愿意被别人伤害,否则没有人能够伤害你。

8、勇气

勇敢的承认自己不知道的事情,才能学习并进步。
勇气只是多跨一步超越恐惧。
抱怨自己没有机会的人,多半没有勇气冒险。

9、批评

一事无成的无名小卒才能免于批评。
不要怕不公正的批评,但要知道哪些是不公正的批评。
不要批评你不了解的人,要趁机向他学习。
不要怕受人批评。当你提出新的观念,就要准备受人批评。
不要批评别人的行为,除非你知道他为何那么做。你在同样的情况下也可能会如此。
不能忍受批评,就无法尝试新事物。
如果你经常批评别人,何不试着赞美别人?
开始批评之前,最好先略加赞美。
如果你想要更受人欢迎,尽量多赞美,少批评。

10、行为

真正伟大的人,别人会从他的善行感受出来。
一天没有臆见善行,就是白过了。
奖章和头衔不能让你上天堂,善行才能增加你的分量。
建设性的行为才能服人,言语的吹嘘无益。
不要说你想要什么,用行为表达。
善行是赞美自己最好的办法。
如果你比别人更具智慧,别人会从你的行为看出来。
善意的回应是惩罚对你不义的人最安全的方式。
对不喜欢你的人不要多费口舌。
花钱想要上天堂的人,一定后悔没有多行善。
善行比滔滔雄辩更能打动人心。
墓志铭不如善行更另人怀念。
世界不会因为所知给你勋章,而会因你的善行而给你荣耀。
善行不需要言语的粉饰。

11、明确的目标

明确的了解自己想要什么,致力追求。
一个人没有明确的目标,就象船没有罗盘一样。
智者都有清晰思考的习惯。
意志力缘于持续的行动、自动自发、明确的目标。
诚实与努力的工作,需要明确的目标引导才能成功。
缺乏明确的目标,一生将庸庸碌碌。
坚定的目标是成功的首要原则。


12、教育或学习

教育是开发内在的力量。所有的教育都靠自己的体会;没有人能够教育另外一个人。
你从工作中学到的,比眼前得到的报酬更可贵。
倾听才能学习,说话无益。
好老师一定是好学生。
不一定把所有的知识都记在心里,能够取得所需的知识即可。
研究一个人良好的观念,剩过挑剔他的缺点。
知识必须加以运用,才能产生力量。
努力把事情做得比别人更好,你就会忘了财务的困扰。
如果你不努力向上司学习,就虚掷了升迁及更好的工作机会。
哲学家从犯错的人身上找出人类所犯的错误。
善于发问使苏格拉底成为当时的智者。
明智的运用知识,吸引更伟大的知识。
你自工作中学到的越多,赚得越多。
自工作学习的人,等于别人付钱让他上学。
知识必须经由行动产生利益,否则无用。

13、言之有物

记住,别人从你所说的每一个字,了解你所知的多寡。
你怎么说和你说什么同样重要。
人们在有所求时,语气特别不同。
语气委婉别人比较听得进去。
口不择言往往造成尴尬的场面。
刻薄的话伤人最甚。
思考可以随心所欲,表达想法则必须谨慎小心。

14、热诚

当热诚变成习惯,恐惧和忧虑即无处容身。
缺乏热诚的人也没有明确的目标。
热诚使想象的轮子转动。
一个人缺乏热诚就象汽车没有汽油。
善于安排玩乐和工作,两者保持热诚,就是最快乐的人。
热诚使平凡的话题变得生动。
 
15、多做一点

每次你多做一些,别人就欠你一些。
让别人做得更好,同时提升自己的价值。
善于钓鱼的人选用鱼喜欢的饵。
你不能让所有的人喜欢你,却能减少别人讨厌你的原因。
与人协商而不产生摩擦,是有待学习的一大课题。
多做一些,机会将随之而来。
为别人服务最多的人最富有。
服务的道路才能通往快乐的城市。

16、失败

爱迪生失败一万次才发明灯泡。失败一次不必担心。
“一般人”只失败一次就放弃。所以“一般人”者众,而爱迪生只有一个。
漫无目的,随波逐流是失败的首要原因。
横逆中能找出顺逆中所没有的机会。
让孩子小时侯“好过”,长大之后经常会“难过”。
批评别人错误时,更要加入一些赞美。
失败和暂时的挫折有极大的差别,了解两者的不同,才能成功。
不因一时的挫折停止尝试的人,永远不会失败。
许多人只需要再多支持一分钟,多做一次努力,就能反败为胜。
成功招揽成功,失败招揽失败。
企图不劳而获的人,往往一事无成。
别人的错误不是你犯错的借口。
如果你尽力而为,失败并不可耻。
不要责怪孩子不好,怪那些没有教好孩子的大人。
错误象花园中的杂草,若未及时铲除,就会到处蔓生。
自怜是让人上瘾的麻醉剂。
智者注意自己的缺点,一般人吹嘘自己的优点。
失败若能将人推出自满的椅子,迫使他做更有用的事情,则是一种福气。
失败是一种让人承担更大责任的准备。
了解自己为何失败,则失败是资产。

17、公平

不要忽视小节,宇宙由原子构成。
得到帮助最好的方式是开始帮助别人。

18、信心

信心愈用愈多。
除非你愿意,没有人能破坏你对任何事情的信心。
所有伟大的奇迹都只是信心的力量。
不幸很少会纠缠有希望和信心的人。
信心需要立足点,恐惧却能凭空存在。
信心缘于明确的目标及积极的态度。
信心是一种态度,常使“不可能”消失于无形。
信心不能给你需要的东西,却能告诉你如何得到。

19、恐惧

虚张声势往往显示极深的恐惧。
不要因为恐惧而犹疑,前进就能消除恐惧。
恐惧是魔鬼最大的武器,人类最大的敌人。
意识清楚的人很少畏惧任何东西。
信心可以克服恐惧。
把你的恐惧留给自己,别人有别人的恐惧。
坏运气喜欢怕他的人。
希望和恐惧不会同行。
恐惧贫穷的人永远不会富有。

20、朋友

有求于人才会去找朋友,很快就没有朋友。
如果你愿意要朋友,先做别人的朋友。
不要让帮助你自消沉中振作的朋友失望。
朋友是了解你并尊重你的人。
友谊需要经常表达才能长存
友谊是看出朋友的缺点却不张扬。

21、抱怨

如果你非要抱怨,那么你小声一些,以免吵到别人。
不要太苛求抱怨的人,他把自己的日子弄得够难过的了。

22、健康和习惯

如果你感觉无精打采,等到饿了再去吃东西。
生病之前就应该看医生。
只吃八分饱
不断想着疾病,你就会不断生病,健康亦然。
新鲜的水果和蔬菜是永远不会过量的健康食品。
不要头痛医头,找出病因才是根本之道。
吃得多不一定健康。
注意饮食习惯,省下看医生的花费。

23、残障

一位中国西北大学的盲生以速记抄录讲义,卖给视力正常的同学,完成学业。
如果你感到泄气,想想又瞎、有盲、又聋,一生过得充实愉快,著书鼓励更多人的海伦`凯勒。
从顶端开始的人是极大的不幸,因为他只能往往是向下滑。

24、快乐

有些人累积金钱换取财富,智者累积快乐,与人分享仍取之不竭。
快乐在于行动,不只是拥有。
剥夺别人的快乐不能使自己快乐。
微笑使人更美丽、更愉快,却不费分文。
热情比怨恨更得人心。
慷慨的给予快乐,自己更快乐。

25、和谐

和谐使宇宙运转不停。
机器的摩擦耗费成本,人际间的摩擦损耗心灵。
如果你不同意别人的说法,至少不要和他人争执。
促进和平的人受人景仰,挑起摩擦的人遭人嫌恶。
记住,至少要两个人才能争执。
两个人以上为明确的目标同心协力,将产生无穷的力量。
彼此信任是良好人际关系的基础。
人际关系良好的人永远不愁没有朋友。
喜欢和谐的人通常知道该如何维系。
持久的成功建立在和谐的人际关系之上。
尽量充当和事佬,就没有太多纷争。
趁机浑水摸鱼的人才会挑起人事纷争

2006年04月20日

window.open的例子和使用方法以及参数说明(完整版)
  
  一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+
  
  
  二、基本语法:
  window.open(pageURL,name,parameters)
  其中:
  pageURL 为子窗口路径
  name 为子窗口句柄
  parameters 为窗口参数(各参数用逗号分隔)
  
  
  三、示例:
  <SCRIPT>
  <!–
  window.open (‘page.html‘,‘newwindow‘,‘height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no‘)
  //写成一行
  –>
  </SCRIPT>
  脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。
  请对照。
  
  上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。
  
  
  四、各项参数
  其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。
  
  参数 | 取值范围 | 说明
   | |
  alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
  alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
  depended | yes/no | 是否和父窗口同时关闭
  directories | yes/no | Nav2和3的目录栏是否可见
  height | pixel value | 窗口高度
  hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
  innerHeight | pixel value | 窗口中文档的像素高度
  innerWidth | pixel value | 窗口中文档的像素宽度
  location | yes/no | 位置栏是否可见
  menubar | yes/no | 菜单栏是否可见
  outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
  outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
  resizable | yes/no | 窗口大小是否可调整
  screenX | pixel value | 窗口距屏幕左边界的像素长度
  screenY | pixel value | 窗口距屏幕上边界的像素长度
  scrollbars | yes/no | 窗口是否可有滚动栏
  titlebar | yes/no | 窗口题目栏是否可见
  toolbar | yes/no | 窗口工具栏是否可见
  Width | pixel value | 窗口的像素宽度
  z-look | yes/no | 窗口被激活后是否浮在其它窗口之上
  
  window.showModalDialog使用手册!(凑个热闹)
  
  
  基本介绍:
  showModalDialog() (IE 4+ 支持)
  showModelessDialog() (IE 5+ 支持)
  window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。
  window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
  
  使用方法:
   vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
   vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])
  
  参数说明:
  sURL–
  必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
  vArguments–
  可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
  sFeatures–
  可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
  1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
  2.dialogWidth: 对话框宽度。
  3.dialogLeft: 离屏幕左的距离。
  4.dialogTop: 离屏幕上的距离。
  5.center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
  6.help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
  7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
  8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
  9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
  下面几个属性是用在HTA中的,在一般的网页中一般不使用。
  10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
  11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
  12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。
  
  参数传递:
  1.要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
  ——————————-
  parent.htm
  <script>
  var obj = new Object();
  obj.name=“51js“;
  window.showModalDialog(“modal.htm“,obj,“dialogWidth=200px;dialogHeight=100px“);
  </script>
  modal.htm
  <script>
   var obj = window.dialogArguments
   alert(“您传递的参数为:“ + obj.name)
  </script>
  ——————————-
  2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
  ——————————
  parent.htm
  <script>
  str =window.showModalDialog(“modal.htm“,,“dialogWidth=200px;dialogHeight=100px“);
  alert(str);
  </script>
  modal.htm
  <script>
   window.returnValue=“http://www.51js.com“;
  </script>

2006年04月14日

一、认识Web.config文件
Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式

),它可以出现在应用程序的每一个目录中。当你通过新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的
Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个

Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

  在运行时对Web.config文件的修改不需要重启服务就可以生效(注:<processModel> 节例外)。当然Web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。

  二、web.config配置文件(默认的配置设置)以下所有的代码都应该位于

<configuration>
<system.web>
  和
</system.web>
</configuration>

  之间,出于学习的目的下面的示例都省略了这段XML标记
  1、<authentication> 节

  作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<

authentication> 元素必需与<authorization> 节配合使用。

  示例:
  以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。

<authentication mode="Forms" >
<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>

</authentication>
  其中元素loginUrl表示登陆网页的名称,name表示Cookie名称

  2、<authorization> 节
  作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明

。必需与<authentication> 节配合使用。
  示例:以下示例禁止匿名用户的访问
<authorization>
 <deny users="?"/>
</authorization>

  注:你可以使用user.identity.name来获取已经过验证的当前的用户名;可以使用
web.Security.FormsAuthentication.RedirectFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.具体的实例请参考:
  Forms验证 http://www.fanvb.net/websample/dataauth.aspx

  3、<compilation>节
  作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为True(Web.config文件

中有详细说明,此处省略示例)

  4、<customErrors>
  作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。

  示例:当发生错误时,将网页跳转到自定义的错误页面。

<customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly">
</customErrors>
  其中元素defaultRedirect表示自定义的错误网页的名称。mode元素表示:对不在本地 Web 服务器上运行的用户显示自定义(友好的)信息
  5、<httpRuntime>节
  作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。
  示例:控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100

<httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/>

  6、 <pages>
  作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。<pages>可以在计算机、站点、应用程序

和子目录级别声明。

  示例:不检测用户在浏览器输入的内容中是否存在潜在的危险数据(注:该项默认是检测,如果你使用了不检测,一要对用户的输入进行

编码或验证),在从客户端回发页时将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。(注:该项默认是不验证)
<pages buffer="true" enableViewStateMac="true" validateRequest="false"/>

  7、<sessionState>

  作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。

  示例:

<sessionState mode="InProc" cookieless="true" timeout="20"/>
</sessionState>
  注:
  mode="InProc"表示:在本地储存会话状态(你也可以选择储存在远程服务器或SAL服务器中或不启用会话状态)

  cookieless="true"表示:如果用户浏览器不支持Cookie时启用会话状态(默认为False)

  timeout="20"表示:会话可以处于空闲状态的分钟数

  8、<trace>

  作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。

  示例:以下为Web.config中的默认配置:

<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
  注:
  enabled="false"表示不启用跟踪;requestLimit="10"表示指定在服务器上存储的跟踪请求的数目

  pageOutput="false"表示只能通过跟踪实用工具访问跟踪输出;

  traceMode="SortByTime"表示以处理跟踪的顺序来显示跟踪信息

  localOnly="true" 表示跟踪查看器 (trace.axd) 只用于宿主 Web 服务器

  三、自定义Web.config文件配置节

  自定义Web.config文件配置节过程分为两步。

  一是在在配置文件顶部 <configSections> 和 </configSections>标记之间声明配置节的名称和处理该节中配置数据的 .NET

Framework 类的名称。

  二是在 <configSections> 区域之后为声明的节做实际的配置设置。

  示例:创建一个节存储数据库连接字符串
<configuration>
 <configSections>
 <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0,

Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>

 <appSettings>
  <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/>
 </appSettings>

 <system.web>
  ……
 </system.web>
</configuration>

2006年04月10日


后台:.cs

private void Page_Load(object sender, System.EventArgs e)
{
this.conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + base.Server.MapPath("db/FileManager.mdb"));
this.conn.Open();
this.cmd = new OleDbCommand("select top 1 * from topic order by gbtime desc", this.conn);
DataList1.DataSource=this.cmd.ExecuteReader();
DataList1.DataBind();
//dgNews.DataSource=this.cmd.ExecuteReader();
//dgNews.DataBind();

}

简介

Jet 数据库引擎由用于 Microsoft Access 数据库的 Microsoft® Internet 信息服务 (IIS) 提供。此数据库引擎通常可以替代 Microsoft SQL Server,并且对于低容量的 Web 应用程序非常有用。Jet 数据库引擎是 OLEDB 兼容的,Microsoft .NET Framework System.Data.OleDb 命名空间中的类支持此引擎。

本演练中您将使用的主要对象为 OleDbConnectionOleDbCommandOleDbDataReader 对象,以及 DataGrid 服务器控件。

图 1   ADO.NET 数据访问管道

OleDbConnection 对象控制与 Jet 数据库引擎的连接。OleDbCommand 包含告知数据库引擎采取何种操作的 Microsoft SQL 语句。OleDbDataReader 是一个快速、只读、仅向前的数据库游标,它可以读取由 SQL 语句选定的记录。DataGrid 可显示记录,并在添加、删除或编辑记录时引发事件。这些事件可以创建用于更改数据库并显示结果记录的新 SQL 语句。

要求

在开始之前,您的计算机中必须安装以下软件:

  • Windows® XP (SP1) 和所有修补程序
  • Microsoft Internet 信息服务 (IIS)
  • Microsoft Access 2002
  • Visual Studio .NET

在尝试演练之前,请确保可以创建简单的 Visual C# ASP.NET Web 应用程序。

演练

在本演练中,您将使用 Microsoft Access 创建一个数据库,并将使用 ADO.NET 创建、添加、编辑和删除记录。

创建数据库

  1. 打开 Microsoft Access,在新建的文件夹 C:\Pets 中创建一个名为 Pets.mdb 的空数据库。
  2. 在 Designer(设计器)视图中创建一个新表。
  3. 添加一个名为 ID 的自动编号字段和两个名为 PetNamePetType 的文本字段。将 ID 设置为主键,并接受所有默认设置。

    图 2   在 Access 中设计数据表

  4. 切换至数据表视图,并将表保存为 PetTable
  5. 向表中添加若干项。

    图 3   添加测试数据

  6. 保存表,并关闭 Access。

显示数据库记录

OleDbConnection 对象包含将 Jet 数据库引擎连接至 Pets.md 数据库的连接字符串。构造连接字符串时,将提供相对于应用程序根目录的 Pets.mdb 文件位置。相对路径通过 Server.MapPath 方法更改为物理路径。这使得在将 Web 应用程序发布至远程服务器的同时,Web 应用程序仍可用于 Jet 数据库引擎。

OleDbCommand 对象包含 SQL 语句 SELECT * FROM PetTable,该语句可以选择 PetTable 中的所有记录。OleDbCommand.ExecuteReader 方法可以创建一个 OleDbDataReader 对象以读取这些记录。DataGrid 通过其 DataGrid.DataSource 属性连接至数据读取器。

执行 DataGrid.DataBind 方法时,数据库记录从数据库移至 DataGrid,且每行显示一个记录。

  1. 打开 Visual Studio .NET。
  2. 在 http://localhost/Pets 创建一个新的 Visual C# ASP.NET Web 应用程序。
  3. 将文件 WebForm1.aspx 重命名为 PetForm.aspx。
  4. 在 Solution Explorer(解决方案资源管理器)中,右击 Pets 项目根目录并选择 Add/New Folder(添加/新建文件夹)。将文件夹命名为 Pets。使文件夹保持选定状态。
  5. 右击 Pets 项目,并将现有项 C:\Pets\Pets.mdb 添加到 Pets 文件夹。必须在 Files of Type(文件类型)下拉列表中选择 All Files(所有文件),才能在 Existing Item(现有项)浏览器窗口中看到 Pets.mdb 文件。
  6. 在工具箱中,将 DataGrid 拖动至 Web 窗体,将其重命名为 datagrid
  7. 通过双击窗体切换至代码视图。
  8. 将此行添加到 WebForm1.aspx.cs 开始处的 using 语句
    using System.Data.OleDb;
    
  9. 将此代码插入到 Page_Load 方法:
        private void Page_Load(object sender, System.EventArgs e)
        {
             if (!IsPostBack)  ReadRecords();
        }
    
  10. ReadRecords 方法添加到紧接在 Page_Load 方法之后的 PetForm 类:
    private void ReadRecords()
    {
        OleDbConnection conn = null;
        OleDbDataReader reader = null;
        try
        {
            conn = new OleDbConnection(
                "Provider=Microsoft.Jet.OLEDB.4.0; " +
                "Data Source=" + Server.MapPath("Pets/Pets.mdb"));
            conn.Open();
    
            OleDbCommand cmd =
                new OleDbCommand("Select * FROM PetTable", conn);
            reader = cmd.ExecuteReader();
    
            datagrid.DataSource = reader;
            datagrid.DataBind();
    }
    //        catch (Exception e)
    //        {
    //            Response.Write(e.Message);
    //            Response.End();
    //        }
        finally
        {
            if (reader != null)  reader.Close();
            if (conn != null)  conn.Close();
        }
    }
    
  11. 按 F5 键在调试器中启动 Web 应用程序。数据库的内容应显示在浏览器中。

    图 4   浏览器中显示的数据库

  12. 关闭应用程序,然后关闭 Visual Studio。
    注意:   上述代码中包含 catch 语句的注释。默认情况下,Visual Studio 将创建一个 C# Web 应用程序项目,其 Generate Debugging Information 属性设置为 true。这将在 bin 目录创建一个 Pets.pdb 文件。默认的 ASP.NET 错误处理程序将使用此信息来创建错误详细信息页面,该页面显示了发生错误的源行以及堆栈跟踪和其他错误信息。

调试项目后,可以将 Generate Debugging Information 设置为 false,不再构建 Pets.pdb。此时,可以删除 catch 语句的注释,并将其替换为自己的错误处理程序。

配置数据库

默认情况下,ASP.NET 用户没有向数据库中写入记录或在包含数据库的文件夹中创建锁定文件 (.ldb) 的权限。您必须授予 ASP.NET 用户这些权限。通常使用以下三种方法之一来授予权限:

  • 将 ASP.NET 用户添加到管理员组。
  • 为 web.config 文件中的应用程序启用模拟。
  • 为数据库文件以及包含该数据库的文件夹添加 ASP.NET 写入权限。

在本演练中,您将使用第三种(最安全的)方法授予写入权限。

  1. 在 File Explorer(文件资源管理器)中,找到新建的 Pets 文件夹,它通常位于 C:\Inetpub\wwwroot\Pets\Pets。
  2. 右击 Pets 文件夹,并选择 Properties(属性)。
  3. 选择 Security(安全)选项卡,并单击 Add(添加)按钮。
  4. 添加对象名 <YOURMACHINE>\ASPNET,其中 <YOURMACHINE> 是您的计算机名。单击 OK(确定)返回到 Security(安全)选项卡。
  5. 选择 ASP.NET 帐户,并添加 Write(写入)权限。此帐户被命名为 aspnet_wp 帐户、ASP.NET MACHINE 帐户或其他类似的名称。
  6. 在 File Explorer(文件资源管理器)中,右击文件 Pets.mdb,并选择 Properties(属性)。
  7. 选择 Security(安全)选项卡,并单击 Advanced(高级)按钮。
  8. 选取 Inherit from parent the permissions entries that apply to child objects(从父项继承那些可以应用到子对象的权限项目)。单击 OK(确定)以接受更改。

有关 ASP.NET 安全问题的详细信息,请参阅 Authentication in ASP.NET: .NET Security Guidance(英文)。

创建 DataGrid 编辑列

您可以使用 Visual Studio 属性生成器向 DataGrid 添加列。属性生成器包含格式选项,可以向 DataGrid 添加颜色和样式。

  1. 在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid。如果 Property(属性)窗口未打开,请从 View(视图)菜单将其打开。
  2. 在 Properties(属性)窗口的最底部会显示两个链接:Auto Format(自动格式)和 Property Builder(属性生成器)。选择 Property Builder(属性生成器)。
  3. 选择 Columns(列)视图。
  4. 取消选取 Create columns automatically at run time(运行时自动创建列)。
  5. 在 Available Columns(可用列)列表中,展开 Button(按钮)列。选择 Edit(编辑)、Update(更新)、Cancel(取消)选项。单击“>”按钮将其添加到 Selected Columns(选定列)列表中。
  6. 在 Available Columns(可用列)列表中,选择 Bound Column(绑定列)。单击“>”按钮将其添加到 Selected Columns(选定列)列表中。将标头文本设置为“宠物名字”,将 Data(数据)字段设置为“PetName”。
  7. 重复上一步以添加其他绑定列,将标头文本设置为“宠物类型”,将 Data(数据)字段设置为“PetType”。
  8. 单击 OK(确定)返回到 Designer(设计器)视图。DataGrid 将反映所作的更改。
  9. 在 Properties(属性)窗口的最底部,选择 Auto Format(自动格式)。
  10. 选择一个格式,例如“Colorful 1”。
  11. 单击 OK(确定)返回到 Designer(设计器)视图。DataGrid 将反映所作的更改。

    图 5   添加了编辑链接的 DataGrid

  12. 按 F5 键在调试器中启动 Web 应用程序。数据库的内容应显示在浏览器中。

    图 6   浏览器中的编辑链接和数据

编辑 DataGrid

DataGrid.EditItemIndex 属性可以选择一行进行编辑。选定一行进行编辑时,在每个单元格中将显示文本框。每个文本框中的文本被设置为数据记录中相应字段的值。

您必须将 Edit(编辑)链接连接到某个事件处理程序,该事件处理程序可以选择包含要进行编辑的链接的行。您还应该将 Cancel(取消)链接(尚不可见)连接到某个事件处理程序,该事件处理程序可以恢复 DataGrid 行而不更改相应的记录。

  1. 在 Visual Studio 的 Designer(设计器)视图中选择 DataGrid,并在 Properties(属性)窗口(闪电图形)中单击 Events(事件)选项卡。双击 CancelCommand 以创建 datagrid_CancelCommand 事件处理程序。返回到 Events(事件)选项卡,并双击 EditCommand 以创建 datagrid_EditCommand 事件处理程序。
  2. 将以下代码插入到这两个事件处理程序中:
    private void datagrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        datagrid.EditItemIndex = -1;
        ReadRecords();    
    }
    private void datagrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        datagrid.EditItemIndex = e.Item.ItemIndex;
        ReadRecords();
    }
    
  3. 按 F5 键启动 Web 应用程序。
  4. 单击第二行左侧的 Edit(编辑)链接。DataGrid 将显示一行,并在文本框中显示 PetName 和 PetType 字段的值。Edit(编辑)链接将更改为 Update(更新)和 Cancel(取消)链接。

    图 7   在浏览器中编辑数据(已单击 Edit [编辑] 链接)

  5. 单击 Cancel(取消)返回到默认的 DataGrid 显示。

更新 DataGrid

选定一行进行编辑时,将显示 Update(更新)和 Cancel(取消)链接。使用文本框为数据库记录中的字段输入新值后,必须将这些更改移回数据库。

您必须将 Update(更新)链接连接到某个事件处理程序,该事件处理程序可以读取每个文本框并更新相应记录中的字段。DataGrid.DataKeyField 使用数据库表的主键字段将每行与其相应的记录相关联。您可以生成 SQL 语句来更新使用新字段值的记录,然后调用 OleDbCommand.ExecuteNonQuery 来执行更新。

  1. 在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid。在 Properties(属性)窗口中,将 DataKeyField 属性设置为 ID。
  2. 在 Properties(属性)视图(闪电图形)中单击 Events(事件)选项卡。双击 UpdateCommand 以创建 datagrid_UpdateCommand 事件处理程序。
  3. 将以下代码插入到该事件处理程序中:
    private void datagrid_UpdateCommand(object source,
        System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex];
        
        string name = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
        string type = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
        
        string sql =
            "UPDATE PetTable SET PetName=\"" + name +
            "\", PetType=\"" + type + "\"" +
            " WHERE ID=" + ID;
        ExecuteNonQuery(sql);
        
        datagrid.EditItemIndex = -1;
        ReadRecords();
    }
    
  4. ExecuteNonQuery 方法添加到 PetForm 类:
    private void ExecuteNonQuery(string sql)
    {
        OleDbConnection conn = null;
        try
        {
            conn = new OleDbConnection(
                "Provider=Microsoft.Jet.OLEDB.4.0; " +
                "Data Source=" + Server.MapPath("Pets/Pets.mdb"));
            conn.Open();
    
            OleDbCommand cmd =
                new OleDbCommand(sql, conn);
            cmd.ExecuteNonQuery();
        }
    //  catch (Exception e)
    //  {
    //      Response.Write(e.Message);
    //      Response.End();
    //  }
        finally
        {
            if (conn != null)  conn.Close();
        }
    }
    
  5. 按 F5 键启动 Web 应用程序。
  6. 单击第二行左侧的 Edit(编辑)链接。
  7. 将 PetType 文本框中的文本由“狗”更改为“犬”。
  8. 单击 Update(更新)链接以查看更新的 DataGrid。

向 DataGrid 添加记录

DataGrid 不支持“添加”列,但是可以使用按钮单击事件处理程序以向数据库中添加记录。可以创建 SQL 语句来添加记录,然后调用 OleDbCommand.ExecuteNonQuery 来更新数据库。

  1. 在 Visual Studio 的 Designer(设计器)视图中,将某个按钮从工具栏拖动到窗体并将其命名为 btnAddPet。将其文本更改为“Add Pet”。

    图 8   将添加按钮添加到 DataGrid

  2. 双击该按钮,并将此代码插入到 btnAddPet_Click 方法:
    private void btnAddPet_Click(object sender, System.EventArgs e)
    {
        string sql = "INSERT INTO PetTable (PetName, PetType)"
            + " VALUES (\"new\", \"new\")";
        ExecuteNonQuery(sql);
        ReadRecords();
    }
    
  3. 按 F5 键启动 Web 应用程序。
  4. 单击 Add(添加)按钮。一个新行将被添加到数据库中。

    图 9   添加的新行

从 DataGrid 中删除行

您可以使用属性生成器向 DataGrid 添加 Delete(删除)列。您必须将 Delete(删除)链接连接到可以删除数据库中相应记录的事件处理程序。可以使用 DataGrid.DataKeyField 属性将要被删除的行与其相应的记录相关联。可以创建 SQL 语句来删除记录,然后调用 OleDbCommand.ExecuteNonQuery 来更新数据库。

  1. 在 Visual Studio 的 Designer(设计器)视图中,选择 DataGrid
  2. 在 Properties(属性)窗口的最底部,选择 Property Builder(属性生成器)。
  3. 选择 Columns(列)视图。
  4. 在 Available Columns(可用列)列表中,展开 Button(按钮)列。选择 Delete(删除)选项。单击“>”按钮将其添加到 Selected Columns(选定列)列表中。单击 OK(确定)返回到 Designer(设计器)视图。
  5. 选择 DataGrid,并在 Properties(属性)窗口(闪电图形)中单击 Events(事件)选项卡。双击 DeleteCommand 以创建 datagrid_DeleteCommand 事件处理程序。
  6. 将以下代码插入到该事件处理程序中:
    private void datagrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex];
    
          sql = "DELETE FROM PetTable WHERE ID=" + ID;
        ExecuteNonQuery(sql);
        ReadRecords();
    }
    
  7. 按 F5 键启动 Web 应用程序。
  8. 单击最后一行右侧的 Delete(删除)按钮。该行将从数据库中删除。
2006年04月03日

巧用copy命令实现文件合并隐藏秘密我们都知道DOS命令Copy的主要作用是复制文件,可是你是否知道,它还有一个作用是合并文件呢?     一般情况下,它主要用于合并相同类型的文件,比如将两个文本文件合并为一个文本文件、将两个独立的MPEG视频文件合并为一个连续的视频文件等。那么,如果用它合并两个不同类型的文件,结果会怎样呢?    笔者发现,巧妙地将一个文本文件合并到一个非文本文件中,可以实现隐藏秘密的作用。一起来看看吧。    比如你有一段私人信息要隐藏起来,请先录入并保存为文本文件,假设保存为001.txt。另找一个非文本文件,最好为图片文件或可执行文件。以图片文件为例,假设它的文件名为002.jpg。如果把它们都放到D盘根目录下,那么在Windows的MS-DOS方式下执行以下命令:  

d:\>Copy 002.jpg/b + 001.txt/a 003.jpg     其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。这里要注意文件的顺序,二进制格式的文件应放在加号前,文本格式的文件放在加号后。    执行该命令后,生成了一个新文件003.jpg。回到Windows中用图片浏览软件打开这个它,你会发现它与002.jpg的显示结果一模一样–别着急,秘密马上揭晓!用记事本打开003.jpg(在记事本的“打开”对话框中选择“文件类型”为“所有文件”才能打开非TXT文件;或者直接用鼠标把图片拖进记事本窗口),你看到什么了?一堆乱码吗?没错!但如果你按下Ctrl+End键将光标移至文件的尾部,哈,你再看看!是不是001.txt文件中的内容?呵呵,“秘密”原来在这儿。       

提醒大家:就是这个文本文件的前面最好空上3行以上,这样它头部的内容就不会丢失

2006年04月02日

以前QQ网名叫沉默的羔杨,现在不想在沉默,把它改成羔羊不再沉默,跟一本黑客的书名一样.呵呵!也是要让自己走出沉默,我不是沉默的羔羊,我有话要说,突然想起这道郑化的我不是沉默的羔羊的歌词,这首歌,最能反应我现在的心情了.

独坐电脑前,不知道自己该干些什么了 ,突然想起自己今年就22了,真的好可怕,我承认,这个时候我觉得自己是寂寞的一群,但是我总要找到句安慰自己的理由,一句话:“不要因为寂寞而找GF,寂寞男人请要学会品味寂寞.请记住即使寂寞,远方黑暗的夜空下,一定有人和你一样,寂寞的人不同,仰望的星空却是唯一。”哈哈 ,自我陶醉了,看网站上说:事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现。我现在还不知道这句话有没有道理,或许我会明白……

2006年03月27日

xp中毒后,把以前的ghost的还原后,找不到2000的启动菜单,在网上找了好多资料都用不上,还好,皇天不负有心人,被我找到了OSBRecovery这样的一款多系统菜单修复引导的软件。哎,忙了一下午。总算解决了!