
asp.net
文章平均质量分 91
smallfools
这个作者很懒,什么都没留下…
展开
-
asp.net中的窗体身份验证(分目录验证篇)
在上一篇博文《asp.net中的窗体身份验证(最简单篇)》中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的。 比如一个新闻系统,通常只有在发布新闻的网页才需要身份验证,而用户浏览新闻是不需要身份验证的。对于这种情况,就要针对不同的网页来进行身份验证了。 要实现这种功能,也只要将《asp.net中的窗体身份原创 2009-05-26 16:43:00 · 4191 阅读 · 1 评论 -
在VS2008中创建自定义控件(三)在网页中添加自定义控件
在工具箱中添加自定义控件之后,我们就可以像使用服务器控件一样,直接拖到网页中使用了。如下图所示。 从上图中可以看出,我们的自定义控件从外观上看起来,和TextBox服务器控件没有什么区别。事实上,在使用起来也没有什么区别,我们也可以设置它的属性,如下图所示。 从上图的属性看起来,我们的自定义控件和TextBox控件没有什么区别,这是因为我们的自定义控件继承了TextBox对象的所有方法和属性,并且没有加入其他功能代码,因此,在使用上和TextBox控件是完全相同的。只是在源代码中可以看出原创 2010-06-01 09:26:00 · 4580 阅读 · 0 评论 -
在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
自定义控件中的一些特性挺有用的,为了方便起见,我把常用的一些自定义控件的特性以备注方法进行了标注,如以下代码所示。using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;原创 2010-06-01 17:39:00 · 3157 阅读 · 0 评论 -
在VS2008中创建自定义控件(十)添加枚举型属性
本文目的:在自定义控件中添加一个枚举型的属性 什么是枚举型的属性?看一下下图就明白了。 上图是一个TextBox服务器控件的BorderStyle属性。在属性对话框中,该属性值是通过下拉列表框的形式出现的,我们只能选择下拉列表框中的选项,不能自己输入内容——这就是枚举型属性的特点。 现在假设有一个自定义控件,这个自定义控件用于输入图书相关的信息,图书信息中有一项是图书种类,这个图书种类的只能在小说、青春、历史、保健四个选项中选择。那么,这个图书种类就是一个枚举型的属性。 首先,我们在原创 2010-06-03 09:48:00 · 5172 阅读 · 0 评论 -
在VS2008中创建自定义控件(四)为自定义控件添加默认值
在前面,我们添加了一个自定义控件,为了方便起见,这个自定义控件仅仅只是继承了TextBox服务器控件的属性和方法,并没有其他功能。事实上,添加的自定义控件不可能这么没有个性的,下面,我们为自定义控件添加一个默认值。 打开yundaoTextBox.cs文件,添加一个构造函数,如下所示。public yundaoTextBox(){ //设置属性的缺省值 this.Text = "测试";} 在这个构造函数中,this代表的是自定义控件本身,而Text也就是继原创 2010-06-01 10:41:00 · 3990 阅读 · 0 评论 -
在VS2008中创建自定义控件(六)创建完全自定义控件
在前面介绍的创建自定义控件是直接继承了TextBox服务器控件的自定义控件,事实上,asp.net中允许创建一个完全的自定义控件,也就是不从任何一个服务器控件中继承的自定义控件。 首先,我们在自定义控件项目中添加一个新的“asp.net服务器控件”,命名为“myCustomControl.cs”,如下图所示。 添加完之后,VS会自动为myCustomControl.cs添加一些代码,如下图所示: 从上图中我们可以看出,在默认情况下,VS让自定义控件继承了WebControl类,这个原创 2010-06-01 15:07:00 · 4630 阅读 · 0 评论 -
在VS2008中创建自定义控件(八)输出HTML代码
在《在VS2008中创建自定义控件(六)创建完全自定义控件》中我们介绍了创建完全的自定义控件的方法,在该文章中,VS默认的自定义控件继承的是WebControl类,这个类是所有Web控件的基类。事实上,除了WebControl类之外,自定义控件还可以继承Control类和CompositeControl类。其中Control类是ASP.NET所有控件的基类,而CompositeControl类是可以作用于任何组合控件的基类。另外,这三个类也不是独立的类,CompositeControl类继承了Web原创 2010-06-02 11:07:00 · 3907 阅读 · 0 评论 -
在VS2008中创建自定义控件(九)添加属性
本文目的:1、创建一个自定义控件,这个控件就是我们常用的文字与文本框的组合,如下图所示。2、在自定义控件中添加属性。3、在RenderContents()方法中实现复杂一点的功能。 我们可以这样分析一下,如果创建的自定义控件要达到上图的效果,那么至少需要两个属性:第一个属性代表文本框前的文字;第二个属性代表文本框中的值。因此,我们的第一步,应该是为自定义控件添加属性。 在《在VS2008中创建自定义控件(六)创建完全自定义控件》中我们可以知道,当创建一个自定义控件时,VS会自动为该自定义控件添加原创 2010-06-02 14:48:00 · 4199 阅读 · 1 评论 -
在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
什么是在属性窗口中可折叠的属性?废话少说,先上图,看看图一马上就明白了。图一 在大多数服务器控件的属性窗口中可以看到如上图所示的Font属性,这个属性是用于设置控件中文字的字体。由于文字字体包括是否加粗、是否斜体、使用什么字体、字体大小是多少等内容,因此,可以把这个内容以子属性的方式放在Font属性下,而这个Font属性就是一个在属性窗口中可折叠的属性。 我们接着《在VS2008中创建自定义控件(九)添加属性》来,现在我们要添加一个唐诗作者的属性,由于古人除了姓名之原创 2010-06-03 17:51:00 · 4949 阅读 · 3 评论 -
在VS2008中创建自定义控件(十三)添加内镶属性
在添加了可折叠的属性之后,我们可以重写RenderContents()方法,以便输出唐诗的作者信息,如以下代码所示。/// /// 呈现控件/// /// protected override void RenderContents(HtmlTextWriter output){ string OutText = ""; //诗名 if (!String.IsNullOrEmpty(Title)) { OutText +=原创 2010-06-07 11:39:00 · 2674 阅读 · 0 评论 -
在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
本文目的:让属性窗口中的修改同步到aspx源代码视图 在添加了可折叠的属性之后,我们可以重写RenderContents()方法,以便输出唐诗的作者信息,如以下代码所示。 下面,我们在自定义控件里添加上作者属性值。 可是,在添加作者属性值时,发现了一个问题,当我们在属性窗口里添加了属性值之后,在aspx文件的源代码窗口中并没有同时添加作者属性的内容,如下图所示。 由于aspx中的源代码没有同步添加作者属性值,所以,在生成后的网页中,也看不到作者信息,如下图所示。 当然,我们也可原创 2010-06-07 11:46:00 · 3406 阅读 · 0 评论 -
在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
本文目的:1、了解内镶属性和内联属性的优先级谁高谁低。2、将内联属性从属性中移出 在《在VS2008中创建自定义控件(十三)添加内镶属性》中介绍过什么是内镶属性,以及怎么样添加内镶属性。那什么是内联属性呢?内联属性也就是前面我们在《在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)》和《在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)》介绍过的使用“-”联接符的属性,如下图所示。 在《在VS2008中创建自定义控件(十三)添加内镶属性》中,我们添加了原创 2010-06-09 17:05:00 · 2297 阅读 · 1 评论 -
在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法
这是一个很讨厌的情况,讨厌到我都不知道是因为什么原因,刚才还好好的自定义控件,在使着使着会出现这么一个问题,如下图所示。 一开始,一直以为是我的错,结果,后来发现是微软的错。最后的解决方式是,去http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=KB957507&DownloadId=5273下载VS90SP1-KB957507-v2-CHS-x86.exe补丁,或直接http://www.原创 2010-06-09 17:38:00 · 5688 阅读 · 12 评论 -
在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
首先声明,用户控件和自定义控件是不同滴。用户控件通常都是使用现有的控件进行组合,从而实现一些常用功能,比如说文本框、密码框、验证框和按钮的组合,从而实现一些常用的登录功能。而自定义控件不同,自定义控件一般由服务器控件的基类派生出来的类,更酷的是,自定控件可以和服务器控件一样,添到工具箱里,并从工具箱中直接拖到网页中使用。如下图所示。 在上图中所以看到工具箱中有一个名为“YundaoControls组件”的选项卡,该选项卡下的那两个控件就是自定义控件。那么,要怎么样才能创建自定义控件,又要怎么样原创 2010-05-31 17:43:00 · 16244 阅读 · 2 评论 -
在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
首先声明,用户控件和自定义控件是不同滴。用户控件通常都是使用现有的控件进行组合,从而实现一些常用功能,比如说文本框、密码框、验证框和按钮的组合,从而实现一些常用的登录功能。而自定义控件不同,自定义控件一般由服务器控件的基类派生出来的类,更酷的是,自定控件可以和服务器控件一样,添到工具箱里,并从工具箱中直接拖到网页中使用。如下图所示。 在上图中所以看到工具箱中有一个名为“YundaoControls组件”的选项卡,该选项卡下的那两个控件就是自定义控件。那么,要怎么样才能创建自定义控件,又要怎么样原创 2010-05-31 17:42:00 · 10861 阅读 · 5 评论 -
asp.net中的窗体身份验证(完整篇之六:登出后不能通过后退回来面来的页面)
这个标题好长啊。 原本是没打算写下这一篇的,因为觉得身份验证到了登出之后,就算完成了。可是后来有博友提出疑问,登出之后,点击浏览器上的后退按钮,还是可以退回到登出前页面,起不到身份验证的作用。 事实上,就算使用后退按钮回到原来的页面,也只能看看页面内容,而不能对网页进行操作。一但进行操作的话,还是会需要重新登录的。 也许,有些朋友对页面的安全性要求比较高原创 2010-05-28 12:38:00 · 5560 阅读 · 7 评论 -
多条件查询的程序
在一个网站中,常常会使用到查询功能。假设一个企业内部网中,用户信息里通常会涉及到工号、姓名、性别、学历、职业、职称、身份证号码、手机号码、座机号码、传真号码、邮政编号、通讯地址等信息。而在对用户进行查询时,也可能会使用到多种条件的查询方式,如通过工号查询、通过姓名查询、通过性别查询、通过学历查询等。也有可能会通过多种条件的组合查询,如查学历是大专的女员工等。 对于这种查询情原创 2009-05-26 18:14:00 · 1456 阅读 · 2 评论 -
asp.net中的窗体身份验证(最简单篇)
在创建网站中,常常会使用到身份验证。asp.net中内置了几种身份验证的方式,如Windows、Froms、Passport等。这几种身份验证的方式各有不同。一般来说,网站的身份验证方式都会经过以下几个步骤: 1、输入用户名和密码,单击确定按钮。 2、在后台判断用户名和密码是否正确,如果错误返回提示;如果正确,进入可访问的页面。 在ASP时代,通常都会在原创 2009-05-26 15:32:00 · 7075 阅读 · 3 评论 -
asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式)
在《asp.net中的窗体身份验证(最简单篇) 》中介绍了使用FormsAuthentication.SetAuthCookie()方法创建身份验证票据的方法,事实上,这是一个使用缺省的身份验证票据的方法。在asp.net中,Forms身份验证的方式是在用户登录时创建一个身份验证票,然后将这个身份验证票存放在Cookie中,以后整个网站都可以通过这个Cookie来判断用户是否已经登录。如果原创 2009-05-27 16:53:00 · 5824 阅读 · 0 评论 -
asp.net中的窗体身份验证(完整篇之三:用户登录页面)
在《asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程) 》中我们介绍了asp.net的窗体身份验证过程,按照这个流程,我们可以开始动手编写网页代码。根据《asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式) 》中的web.config代码,我们网站的登录页面为AdminLogin.aspx。在没有登录的情况下,如果访问Default原创 2009-05-28 11:33:00 · 10082 阅读 · 4 评论 -
asp.net中的窗体身份验证(完整篇之二:asp.net的窗体身份验证过程)
在《asp.net中的窗体身份验证(完整篇之一:创建asp.net的窗体身份验证方式) 》中介绍了如何通过修改web.config文件来创建窗体身份验证。修改完web.config文件之后,网站就可以使用窗体身份验证方式来验证用户身份了。那么,整个身份验证的过程是怎么样的呢? 前面说过,在asp.net中,身份验证过程分为两部分,一部分是IIS中的身份验证,只有通过了IIS原创 2009-05-28 10:42:00 · 4518 阅读 · 1 评论 -
asp.net中的窗体身份验证(完整篇之四:获得用户数据)
在《asp.net中的窗体身份验证(完整篇之三:用户登录页面) 》中介绍了如何创建一个自定义身份验证票,如何将自定义的身份验证票写入Cookie中。而在自定义的身份验证票中,可以传递一个用户数据,这个用户数据十分有用。可以用来存放用户权限等级、用户VIP号、用户角色等数据,而这些数据往往可以用来控制用户的权限范围。下面我们来看一下怎么样获得用户数据。 首先,修改web.co原创 2009-05-28 15:14:00 · 3723 阅读 · 1 评论 -
asp.net中的窗体身份验证(完整篇之附录:web.config中相应节点详解)
要使用asp.net窗体身份验证,要做的第一件事就是修改web.config文件。 首先,必须要修改节点下的子节点,将该子节点中的mode属性值设为“Forms”。 然后,在节点下添加子节点,并在该子节点中配置Forms验证方式的具体参数。 第三,如果在节点中的protection属性值为All,则要在节点下添加子节点,并在该子节点中设置数据验证的方法。原创 2009-05-27 17:52:00 · 4661 阅读 · 5 评论 -
将异常写入事件日志中(一):将异常写入应用程序的事件日志中
在一个程序里出现异常是正常的,但如果出现异常却不处理,那就是不正常了。经常看到有很多程序的代码是这样:try{ //一大段代码}catch{ //此处为空} 我可以很负责任地说,这种做法是很不负责任滴! 这种做法,虽然在用户的浏览时看不到什么错误,但是用户也不知道发生了什么事情,正确的处理方式应该是将产生的异常通过友好的方原创 2010-01-21 09:56:00 · 5710 阅读 · 10 评论 -
asp.net中的窗体身份验证(完整篇之五:退出登录)
前面介绍过了如何使用Forms方式进行用户身份验证,然而,在大多网站中都会有一个“退出”功能,让用户可以通出登录。在asp.net中,退出的方式很简单,只要在退出页面中加上代码“FormsAuthentication.SignOut()”即可。 你可以使用Response.Redirect()在退出之后将网页跳转到另一个网页,也可以使用“FormsAuthentication.R原创 2010-01-06 19:56:00 · 4930 阅读 · 3 评论 -
asp.net中的窗体身份验证(不同的角色访问不同的目录)
在《asp.net中的窗体身份验证(最简单篇)》说明了如何让通过了身份验证的用户访问网站,但是该方法中有一个缺点,就是访问整个网站都需要用户身份验证。因此,在《asp.net中的窗体身份验证(分目录验证篇)》中介绍了如何让通过了身份验证的用户访问特定的目录,例如网站根目录中的网页是任何用户都能访问的,而admin目录则只能让通过身份验证的用户访问。这种方法可以解决大部分网站的身份控制,但是原创 2010-01-06 09:06:00 · 7195 阅读 · 9 评论 -
asp.net中的窗体身份验证(验证HTML文件)
在前面的几篇文章中介绍了asp.net的窗体身份验证,这种身份验证方式可以让通过验证的用户访问指定的目录,而没有通过验证的用户不能访问该目录下的网页。 但是,有一种例外,就是目录中的html文件例外。例如,在《asp.net中的窗体身份验证(最简单篇)》中介绍的,除了登录网页之外,所有网页都必须在登录之后才能访问,但如果在网站中添加一个HTMLPage.htm文件,访问该文件是不原创 2010-01-07 09:54:00 · 3852 阅读 · 6 评论 -
自定义控件之GridView(一)创建自定义的GridView控件
本文目的:创建一个自定义的GridView控件 VS2008中的GridView很好用,不过在使用上却有一点点不方便。在一个网站中,通常会将所有的GridView设成相同的样式、相同的功能,比如说,当鼠标滑过时显示不同的颜色、在排序时表头显示是顺序还是倒序,等等。这些功能,在GridView中都能实现,只是你需要为每个包含GridView的页面写相同的代码……这都重复劳动,于是,我想,能不能把GridView写成一个自定义控件,将常用的功能添加到该控件中,然后再将这个控件直接在网页中使用呢? 先原创 2010-06-25 17:16:00 · 9636 阅读 · 3 评论