利用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在网页中的布置方法:
<td>姓名:</td>
<td><asp:TextBox id="Text1" runat="server"/>
<asp:regularexpressionvalidator id="valid1" runat="server" controltovalidate="text1"
validationexpression="[a-zA-Z0-9]{4,10}">
(请输入4-10位字符)
</asp:regularexpressionvalidator><p>
</td>
</tr>
<tr>
<td>密码:</td>
<td><asp:TextBox id="Text2" TextMode="Password" runat="server"/>
<asp:regularexpressionvalidator id="valid2" runat="server" controltovalidate="text2"
validationexpression="[a-zA-Z0-9]{4,8}">
(请输入4-8位字符)
</asp:regularexpressionvalidator><p>
一般Regular Expression它是放在要控制的表单元件后面。在网页中,E-mail,电话,地址是常见的输入栏,具体使用方法我们通过上面的例子可以举一反三。
第二. 同时在这个页面里还用到了asp.net的Pagelet(网页配件)。
Pagelet(网页配件)?何谓Pagelet(网页配件),说的通俗点的话,就想是圣诞树上的小挂件,
看页面的上面部分:
我的第一个Header |
2002-4-30 14:49:32
和下面部分:
这个就是两个Pagelet!我们来看看它是怎么制作的:
在这个登录页面的最上面的两行代码,表示在使用Pagelet之前,要先将其登录成为网页可以引用的控件,登录header.ascx、footer.ascx的标记如下
<%@ register tagprefix="wangmg" tagname="header" src="header.ascx" %>
<%@ register tagprefix="wangmg" tagname="footer" src="footer.ascx" %>
其中几个属性的设定如下:
Src: Pagelet来源文件。
Tagname: Pagelet类别名称,本例是header和footer。
TagPrefix:Pagelet类别前导名称,本例是:wangmg。
经过以上的设定之后,header.ascx、footer.ascx将成为网页可以引用的Pagelet,而Pagelet的类别名称是:“wangmg:Table”,定义了类别名称之后,在网页中布置控制元件的标记如下:
<wangmg:header id ="header1" runat="server" title="我的第一个Header"/>
除了必须利用<%@ register %>登录Pagelet之外,使用Pagelet的方法与使用asp.netweb控制元件的方法是完全相同的,也一样可以为Pagelet设定id,也一样要将runat属性设定成“server”。
接下去我们看看header.ascx、footer.ascx
header.ascx:
<script language="vb" runat="server">
public title as string
sub page_load(sender as object,e as eventargs)
label1.text=title
label2.text=cstr(filedatetime(server.mappath(request.filepath)))
end sub
</script>
footer.ascx:
<a href="http://asp.6to23.com/musclecn" target="_top">
学习asp.net找我</a>
在这个页面里设定了title变量,然后在login.aspx页面里定义它的具体内容
<wangmg:header id ="header1" runat="server" title="我的第一个Header"/>
附: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" %>
<script language="VB" runat="server">
sub IsLoginOK (Sender As Object, E As EventArgs)
if page.isvalid then
Dim Provider, SQL, ConnStr As String
dim userid,password,isok as string
userid=trim(text1.text)
password=trim(text2.text)
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
else
Provider = "Microsoft.Jet.OLEDB.4.0;"
ConnStr = "Provider=" & Provider & _
"Data Source=" & Server.MapPath( "Sample.mdb" )
Dim Conn As OleDbConnection = New OleDbConnection( ConnStr )
Conn.Open()
SQL = "Select * From Users Where UserID='" & UserID & _
"' And Password='" & Password & "'"
Dim Cmd As OleDbCommand
Cmd = New OleDbCommand( SQL, Conn )
Dim Adapter As OleDbDataAdapter = New OleDbDataAdapter
Adapter.SelectCommand = Cmd
Dim ds As DataSet = new DataSet()
Adapter.Fill(ds, "Users")
Dim dt As DataTable = ds.Tables("Users")
If dt.Rows.Count > 0 Then
isok=true
dim i,m as integer
i=0
m=3
Label1.Text &= "user: " & userid & "<br>"
Label1.Text &= "password: " & password & "<br>"
Label1.Text &= "登录成功" & "<br>"
session("ok") = "" & dt.Rows(i).Item(m) & "<br>"
response.redirect ("first.aspx")
Else
isok=false
Label1.Text &= "user: " & userid & "<br>"
Label1.Text &= "password: " & password & "<br>"
Label1.Text &= "登录失败" & "<br>"
End If
end if
end if
end if
else
exit sub
end if
End sub
</script>
<Html>
<title>我的登录页面</title>
<Body BgColor="White">
<wangmg:header id ="header1" runat="server" title="我的第一个Header"/>
<H3>登录页面<Hr></H3>
<form runat=server>
<Table BgColor="white" BorderColor="Black"
Cellspacing="10">
<tr>
<td>姓名:</td>
<td><asp:TextBox id="Text1" runat="server"/>
<asp:regularexpressionvalidator id="valid1" runat="server" controltovalidate="text1"
validationexpression="[a-zA-Z0-9]{4,10}">
(请输入4-10位字符)
</asp:regularexpressionvalidator><p>
</td>
</tr>
<tr>
<td>密码:</td>
<td><asp:TextBox id="Text2" TextMode="Password" runat="server"/>
<asp:regularexpressionvalidator id="valid2" runat="server" controltovalidate="text2"
validationexpression="[a-zA-Z0-9]{4,8}">
(请输入4-8位字符)
</asp:regularexpressionvalidator><p>
</td>
</tr>
<tr>
<td></td>
<td><asp:Button id="button1" Text="确定" runat="server" onclick="IsLoginOK"/></td>
</tr>
</table>
</form>
<asp:Label id="Label1" runat="server"/>
<asp:Label id="Label2" runat="server"/>
<wangmg:footer id="footer1" runat="server"/>
</body>
</html>
<script language="vb" runat="server">
public title as string
sub page_load(sender as object,e as eventargs)
label1.text=title
label2.text=cstr(filedatetime(server.mappath(request.filepath)))
end sub
</script>
<Table border="1" cellpadding="2" cellspacing="0"
width="100%" bgcolor="#AAAADD">
<tr>
<td align="center"><font size="4">
<B><asp:Label id="Label1" runat="server"/>
</B></font>
</td>
</tr>
</Table>
<Div Align="right"><Address><Font Size="-1">
<asp:Label id="Label2" runat="server"/>
</Font></Address></Div>
</H2>
footer.ascx
<div align="right">
<hr>
<a href="http://asp.6to23.com/musclecn" target="_top">
学习asp.net找我</a>
</div>
这就是这个登录页面简单教程,因为对asp.net接触的时间并不长,所以难免有错误的地方,欢迎大家批评指正,有不明白的地方欢迎发邮件给我:[email protected]
created by 王明刚(musclecn)
websize:www.musclecn.com
E-mail:[email protected]
QQ:2085432
本文地址:http://com.8s8s.com/it/it45380.htm