无忧脚本 » 经典代码、教程资源库 » 全手写ASP.net开源小程序(留言本),适合初学者

2004-10-26 17:26 卫星
全手写ASP.net开源小程序(留言本),适合初学者

愿意也是为了省得朋友老来问我问题才写个实例,所以,给大家分享吧。
未加注释,但全部手写,十分清晰。

[ 本帖由 aspdotnet 于 2004-11-17 15:57 最后编辑 ]

2004-10-26 17:56 zhazha558
贴出来see

2004-10-26 21:30 dryard
sqlEncode这个方法能保证不使用sql语句的不安全性攻击吗?

2004-10-26 21:35 dryard
sb.Replace("&","&");
                        sb.Replace("<","&lt;");
                        sb.Replace(">","&gt;");
                        sb.Replace("\"","&quot;");
                        sb.Replace("\'","&#39;");
                        sb.Replace("\r","");
                        sb.Replace("\n\n","</p><p>");
                        sb.Replace("\n","<br>");
&lt;&gt;等是如何得到的?

2004-10-26 22:13 卫星
[quote] [u][b]dryard[/b]  在 2004-10-26 09:30 PM 发表:[/u]

sqlEncode这个方法能保证不使用sql语句的不安全性攻击吗? [/quote]

我用这个函数仅仅是为了防止insert和update语句出错
要防止sql注入攻击,还是从输入框限制入手比较好
.net里使用server控件听说不再怕sql注入攻击,不知道是否真的,反正这方面的保护措施我还照做不误。

2004-10-27 09:34 黑闪
你写的太漂亮了,支持

2004-10-27 10:15 huyinfei
override protected void OnInit(EventArgs e)
        {
                InitializeComponent();
                base.OnInit(e);
        }
        private void InitializeComponent()
        {       
                this.Load += new System.EventHandler(this.Page_Load);
        }

这两句是做什么的啊?

2004-10-27 10:23 黑闪
private function book = new function();
这个类的实例,在什么地方,function.cs中没有book这个函数呀
希望就aspdotnet写的这个,我们大家展开讨论,大家会学到很多东东
大家多多提问哦

2004-10-27 10:32 黑闪
OnInit(EventArgs e)
在对象(如窗体或页)初始化后调用。
base.OnInit(e);
从派生类中访问基类的成员
this.Load += new System.EventHandler(this.Page_Load);
就是在前面两项之后,执行page_load
这知道一点意思,原理不是很清楚,希望有高手给予详细讲解

2004-10-27 11:01 卫星
[quote] [u][b]黑闪[/b]  在 2004-10-27 10:23 AM 发表:[/u]

private function book = new function();
这个类的实例,在什么地方,function.cs中没有book这个函数呀
希望就aspdotnet写的这个,我们大家展开讨论,大家会学到很多东东
大家多多提问哦 [/quote]

你不要被表面迷惑。c#中根本就没有function这个关键字。
这里的function是个类名,不信你看看function.cs的类名。

2004-10-27 11:27 黑闪
我问的是book这个,
我有可能说的不清楚
我知道function是个类,我也找到了,但是,就是没有找到book

还有这句,解释一下,谢谢
OleDbConnection conn = book.connection();

[ 本帖由 黑闪 于 2004-10-27 11:30 最后编辑 ]

2004-10-27 11:36 卫星
public HttpCookie mycookie; 这句不会不懂吧?

那 public function book; 是一样的意思啊。

connection()对function类中的一个方法,返回值的类型是OleDbConnection
在运行这个函数的过程中进行数据库连接,然后吧返回的结果赋给conn

2004-10-27 11:41 黑闪
明白了,好搞笑了
定义了一个function的类
book就是这个function类的实例的名称
可以通过book.?????来调用function类中的属性和过程,
应该是这样吧

2004-10-27 11:59 黑闪
还有一个问题
在index.aspx.cs中要使用外部的类,那么是不是应该注册呀
就像这样
using System.Web.UI.WebControls;
using System.???????
但是,我没有找到
就只有这一句
private function book = new function();
那个注册的在什么地方

2004-10-27 13:39 卫星
拿一个例子来说
要使用ConfigurationSettings.AppSettings["keyName"]就必须要加上using System.Configuration;这一句
但是使用System.ConfigurationSettings.AppSettings["keyName"]的话,就没必要加using System.Configuration;了

同样的,如果自定义的类在某个命名空间下
比如
namespace theNameSpace {
        public class theClass : System.Web.UI.Page {
                public string theAttribute = "value";
        }
}
要使用时就得 theNameSpace.theClass.theAttribute
如果加了 using theNameSpace; 则只要写 theClass.theAttribute 即可

而写的那个根本就没有定义某命名空间

2004-10-27 13:59 黑闪
using System;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Web.UI.WebControls;

public class index : System.Web.UI.Page
{
        private function book = new function();
        public Repeater messageBody;
.
.
.
.
我还是有一点不明白,上面的是index.aspx.cs中的代码,而这一句
private function book = new function();
是定义了function.cs(也就是function类)中的一实例
那么,这两个是如何联系在一起的,index.aspx.cs是怎么知道function类的呢???
按照你上面所讲的,他们应该在一个命名空间内的话,就自然联系在一起,
但是,我看你没有定义命名空间呀
这个命名空间是系统自动分配的吗,那么这个命名空间的真正的名字应该是什么??

第二个问题
<add key="adminPwd" value="21232F297A57A5A743894A0E4A801FC3"/>
在web.config中的这一句,value中的16进制串在什么地方用,这个串是用md5 生成的吗???

第三个问题
我在VS。NET中新建了一个新的项目,按照你的文件句,将其中的代码分别复制到相应的文件中,最后我发现一个问题,你可以帮我解释一下吗
运行后,我的bin目录中只一个aspnetstudy.dll,(这个也是我的项目的名称),然而,问题就在这里,其他的文件并没有生成相应的。dll,
我现在想问,没有生成。dll文件,只要有相应的.cs文件,程序是不是照样运行,
如果这样的话,那么,index执行的时候,是不是每一次,都要编译一下index.aspx.cs。


今天,可真是问题多多呀
谢谢

[ 本帖由 黑闪 于 2004-10-27 14:20 最后编辑 ]

2004-10-27 15:34 卫星
一、 bin目录下和C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705目录下的dll文件都会被自动关联,命名空间就象你的姓一样,你亲朋好友叫你时可能去掉姓,但你还是知道是在叫你。

二、那个是md5将“admin”这个字符串加密后的字符串,在login.aspx.cs中有用到。程序里加了判断,如果在web.config中设置的密码长度不是32位,就被认为未加密(即不是md5加密后的结果),这样不会替换加密密码的人就不用去加密了。

三、我只是将所有cs文件编译到了一个dll文件里。不编译照样可以运行,把codebehind='xxx.cs'改成src='xxx.cs'并且对应路径。也不是每次运行都要编译,第一次运行时会编译,接下来就不了,直到探测到程序或文件被更改过,将会重新编译。

2004-10-28 10:16 黑闪
Repeater.OnItemCreated 方法在什么时候执行
这是资料里面的
当在 Repeater 控件中创建一项时发生。
是不是一次记录,创建一次,不太明白
可不可以讲讲
messageCreated这个

2004-10-28 10:47 卫星
每读取到一条记录后都会触发OnItemCreated事件

在读取之后、显示之前

2004-10-28 11:55 dingtian
不错,值得学习

2004-10-31 18:24 洛林
Context.Response.Write("<script>alert('" + errMsg + "');history.back()</script>");

这里的Context是怎么得来的?

2004-11-1 08:27 卫星
类 System.Web.HttpContext

2004-11-1 20:24 niuniu23
如何运行你的程序

能和我解释下吗?谢谢
我刚开始学习 .net,希望以后能得到大家的帮助
谢谢

2004-11-1 22:03 洛林
HttpContext.Current.Response.Write("<script>alert('" + errMsg + "');history.back()</script>");


这样也是可以的吧。

还有我觉得用
Page.RegisterClientScriptBlock("js","<script>alert('" + errMsg + "');history.back()</script>");

会比较好些。

2004-11-2 09:14 卫星
[quote] [u][b]洛林[/b]  在 2004-11-1 10:03 PM 发表:[/u]

HttpContext.Current.Response.Write("<script>alert('" + errMsg + "');history.back()</script>");


这样也是可以的吧。

还有我觉得用
Page.RegisterClientScriptBloc ... [/quote]

Context.Response.Write还是Current.Response.Write都不只是在这样一个小地方会被用到,这只是个留言本所以才用到一点点。如果写大的应用系统的话,用到的地方是非常多的。

2004-11-3 09:06 huyinfei
一个多小时就好拉?太牛了吧

打字也没那么快啊!

2004-11-17 11:46 negy
add.aspx文件里为什么不使用验证控件,而使用JS呢?

2004-11-17 13:52 卫星
[quote] [u][b]negy[/b]  在 2004-11-17 11:46 AM 发表:[/u]

add.aspx文件里为什么不使用验证控件,而使用JS呢? [/quote]

个人爱好。

2005-1-6 15:31 liyuanlin
大家能否讨论一下用验证控件和用JS脚本验证的优缺点!!!
就我个人理解:验证控件要返回到服务器端,所以比较耗费系统资源,但是用起来比较方便,可以通过简单的设置实现各种验证。对于JS脚本验证,在客户端进行,执行效率相对来说高多了。
以上拙见,希望大家指正

2005-3-25 13:27 billding
多谢楼主了!

2005-4-28 09:08 垃圾猪
不要一天到晚手写手写就很强,不要误人子弟了
用VISIO  VS等一起开发才是初学都一开始就要学的

2005-4-28 21:41 yk521530
写的很好中,支持

2005-5-11 18:27 limi711
hj

2005-5-11 18:28 limi711
jhbn

2005-5-12 10:15 Andy_Zhang123


顶:)

2005-5-18 13:38 aming0538
不错的东东!

2005-7-7 15:23 fehu2005
谢谢 学习一下

2005-10-18 13:36 屠神天子
俺先下了在看盾

2005-10-18 21:23 jimmy1127
不錯,無私萬歲!


2005-10-20 11:28 随风轻舞
好好好!!!

页: [1] 2


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.