** 利用 ** ** asp.net ** ** 制作登录页面 ** ** **
create by 王明刚 2002-05-16
一般在一个系统里总会有一个登录页面,同时,登录页面的制作对于所有系统开发者来说,都是必经之路!
首先,我们先来看看 这个登录页面里主要的功能是:
1. 验证用户输入的数据是否完整!
2. 验证用户输入的数据是否满足要求,比如:姓名是否是 4-10 位字符,密码是否是 4-8 位字符。
3. 同时在这个页面里还用到了 asp.net 的 Pagelet (网页配件)。
现在,我们一起来看看具体是怎么制作这个页面的。
第一. 怎样验证用户输入的数据是否完整,这个做过 asp 的人都能理解。不同的是在 asp.net 里显示信息的话是用 Label.text = … ,表示这个 Label 将要显示的信息。
if userid="" and password=""then
Label2.Text &= " 请输入姓名和密码! "
exit sub
else
if userid=""then
Label2.Text &= " 请输入姓名! "
exit sub
else
if password=""then
Label2.Text &= " 请输入密码! "
exit sub
第二.验证用户输入的数据是否满足要求
在这里使用 asp.net 的 Regularexpressionvalidator 控制元件, Regular Expression 是一种功能强大的字符串定义规则,让我们直接来看个实例:如下图,表单中的〔姓名〕栏必须输入 4-10 个字符,而〔密码〕栏必须输入 4-8 个字符。
姓名 : : [a-zA-Z0-9]{4,10}
密码 : [a-zA-Z0-9]{4,8}
有关以上定义的 Regular Expression 字符串,说明如下:
[] :用来定义可接受的字符, a-z 表示小写的 a-z 都是可以接受的字符, A-Z 也是,还有数字 0-9 都是可以接受的。
{}:用来定义必须输入的字符数,{ 4 , 10 }表示至少含有 4 个字符,最多含有 10 个字符。
现在让我们来看看 Regular Expression 在网页中的布置方法:
1<td> 姓名 :</td>
1<td><asp:textbox id="Text1" runat="server"></asp:textbox>
2
3_ <asp:regularexpressionvalidator _="" controltovalidate="text1" id="valid1" runat="server" validationexpression="[a-zA-Z0-9]{4,10}"> _
4
5_ ( _ _ 请输入 4-10 _ _ 位字符 ) _
6
7_ </asp:regularexpressionvalidator> _ <p>
8</p></td>
1<tr>
2<td> 密码 :</td>
3<td><asp:textbox id="Text2" runat="server" textmode="Password"></asp:textbox>
4
5_ <asp:regularexpressionvalidator _="" controltovalidate="text2" id="valid2" runat="server" validationexpression="[a-zA-Z0-9]{4,8}"> _
6
7_ ( _ _ 请输入 4-8 _ _ 位字符 ) _
8
9_ </asp:regularexpressionvalidator> _ <p>
10
11_ 一般 _ Regular Expression 它是放在要控制的表单元件后面。在网页中, E-mail, 电话,地址是常见的输入栏,具体使用方法我们通过上面的例子可以举一反三。
12
13第二. 同时在这个页面里还用到了 asp.net 的 Pagelet (网页配件)。
14
15Pagelet (网页配件)?何谓 Pagelet (网页配件),说的通俗点的话,就想是圣诞树上的小挂件,
16
17看页面的上面部分:
18
19** 我的第一个 ** ** Header **
20
21---
22
23_ 2002-4-30 14:49:32 _
24
25和下面部分:
26
27* * *
28
29学习 asp.net 找我
30
31这个就是两个 Pagelet !我们来看看它是怎么制作的:
32
33在这个登录页面的最上面的两行代码,表示在使用 Pagelet 之前,要先将其登录成为网页可以引用的控件,登录 header.ascx 、 footer.ascx 的标记如下
@ register tagprefix="wangmg" tagname="header" src="header.ascx"
@ register tagprefix="wangmg" tagname="footer" src="footer.ascx"
1
2其中几个属性的设定如下:
3
4Src: Pagelet 来源文件。
5
6Tagname: Pagelet 类别名称,本例是 header 和 footer 。
7
8TagPrefix : Pagelet 类别前导名称,本例是: wangmg 。
9
10经过以上的设定之后, header.ascx 、 footer.ascx 将成为网页可以引用的 Pagelet ,而 Pagelet 的类别名称是:“ wangmg:Table ”,定义了类别名称之后,在网页中布置控制元件的标记如下:
11
12<wangmg:header id="header1" runat="server" title=" 我的第一个 Header"></wangmg:header>
13
14除了必须利用 ```
15@ register
16``` 登录 Pagelet 之外,使用 Pagelet 的方法与使用 asp.netweb 控制元件的方法是完全相同的,也一样可以为 Pagelet 设定 id ,也一样要将 runat 属性设定成“ server ”。
17
18接下去我们看看 header.ascx 、 footer.ascx
19
20header.ascx :
21
22<script language="vb" runat="server">
23
24public title as string
25
26sub page_load(sender as object,e as eventargs)
27
28label1.text=title
29
30label2.text=cstr(filedatetime(server.mappath(request.filepath)))
31
32end sub
33
34</script>
35
36footer.ascx:
37
38<a href="http://asp.6to23.com/musclecn" target="_top">
39
40学习 asp.net 找我 </a>
41
42在这个页面里设定了 title 变量,然后在 login.aspx 页面里定义它的具体内容
43
44<wangmg:header id="header1" runat="server" title=" 我的第一个 Header"></wangmg:header>
45
46附: login.aspx :
@ register tagprefix="wangmg" tagname="header" src="header.ascx"
@ register tagprefix="wangmg" tagname="footer" src="footer.ascx"
@ Import Namespace="System.Data"
@ Import Namespace="System.Data.OleDb"
1
2<script language="VB" runat="server">
3
4sub IsLoginOK (Sender As Object, E As EventArgs)
5
6if page.isvalid then
7
8Dim Provider, SQL, ConnStr As String
9
10dim userid,password,isok as string
11
12userid=trim(text1.text)
13
14password=trim(text2.text)
15
16if userid="" and password=""then
17
18Label2.Text &= " 请输入姓名和密码! "
19
20exit sub
21
22else
23
24if userid=""then
25
26Label2.Text &= " 请输入姓名! "
27
28exit sub
29
30else
31
32if password=""then
33
34Label2.Text &= " 请输入密码! "
35
36exit sub
37
38else
39
40Provider = "Microsoft.Jet.OLEDB.4.0;"
41
42ConnStr = "Provider=" & Provider & _
43
44"Data Source=" & Server.MapPath( "Sample.mdb" )
45
46Dim Conn As OleDbConnection = New OleDbConnection( ConnStr )
47
48Conn.Open()
49
50SQL = "Select * From Users Where UserID='" & UserID & _
51
52"' And Password='" & Password & "'"
53
54Dim Cmd As OleDbCommand
55
56Cmd = New OleDbCommand( SQL, Conn )
57
58Dim Adapter As OleDbDataAdapter = New OleDbDataAdapter
59
60Adapter.SelectCommand = Cmd
61
62Dim ds As DataSet = new DataSet()
63
64Adapter.Fill(ds, "Users")
65
66Dim dt As DataTable = ds.Tables("Users")
67
68If dt.Rows.Count > 0 Then
69
70isok=true
71
72dim i,m as integer
73
74i=0
75
76m=3
77
78Label1.Text &= "user: " & userid & "<br>"
79
80Label1.Text &= "password: " & password & "<br>"
81
82Label1.Text &= " 登录成功 " & "<br>"
83
84session("ok") = "" & dt.Rows(i).Item(m) & "<br>"
85
86response.redirect ("first.aspx")
87
88Else
89
90isok=false
91
92Label1.Text &= "user: " & userid & "<br>"
93
94Label1.Text &= "password: " & password & "<br>"
95
96Label1.Text &= " 登录失败 " & "<br>"
97
98End If
99
100end if
101
102end if
103
104end if
105
106else
107
108exit sub
109
110end if
111
112End sub
113
114</script>
115<html>
116<title> 我的登录页面 </title>
117<body bgcolor="White">
118<wangmg:header id="header1" runat="server" title=" 我的第一个 Header"></wangmg:header>
119<h3> 登录页面 <hr/></h3>
120<form runat="server">
121<table bgcolor="white" bordercolor="Black" cellspacing="10">
122<tr>
123<td> 姓名 :</td>
124<td><asp:textbox id="Text1" runat="server"></asp:textbox>
125<asp:regularexpressionvalidator controltovalidate="text1" id="valid1" runat="server" validationexpression="[a-zA-Z0-9]{4,10}">
126
127( 请输入 4-10 位字符 )
128
129</asp:regularexpressionvalidator><p>
130</p></td>
131</tr>
132<tr>
133<td> 密码 :</td>
134<td><asp:textbox id="Text2" runat="server" textmode="Password"></asp:textbox>
135<asp:regularexpressionvalidator controltovalidate="text2" id="valid2" runat="server" validationexpression="[a-zA-Z0-9]{4,8}">
136
137( 请输入 4-8 位字符 )
138
139</asp:regularexpressionvalidator><p>
140</p></td>
141</tr>
142<tr>
143<td></td>
144<td><asp:button id="button1" onclick="IsLoginOK" runat="server" text=" 确定 "></asp:button></td>
145</tr>
146</table>
147</form>
148<asp:label id="Label1" runat="server"></asp:label>
149<asp:label id="Label2" runat="server"></asp:label>
150<wangmg:footer id="footer1" runat="server"></wangmg:footer>
151</body>
152</html>
153
154# Header.ascx
155
156<script language="vb" runat="server">
157
158public title as string
159
160sub page_load(sender as object,e as eventargs)
161
162label1.text=title
163
164label2.text=cstr(filedatetime(server.mappath(request.filepath)))
165
166end sub
167
168</script>
169<table bgcolor="#AAAADD" border="1" cellpadding="2" cellspacing="0" width="100%">
170<tr>
171<td align="center"><font size="4">
172<b><asp:label id="Label1" runat="server"></asp:label>
173</b></font>
174</td>
175</tr>
176</table>
177<div align="right"><address><font size="-1">
178<asp:label id="Label2" runat="server"></asp:label>
179</font></address></div>
180
181
182footer.ascx
183
184<div align="right">
185<hr/>
186<a href="http://asp.6to23.com/musclecn" target="_top">
187
188学习 asp.net 找我 </a>
189</div>
190
191这就是这个登录页面简单教程,因为对 asp.net 接触的时间并不长,所以难免有错误的地方,欢迎大家批评指正,有不明白的地方欢迎发邮件给我: [email protected]
192
193created by 王明刚( musclecn )
194
195websize:www.musclecn.com
196
197E-mail:[email protected]
198
199<P class=MsoNo</p></td></tr>