学 号: 姓 名: 班 级:
实验时间:2012.9.25 实验地点:A4059 指导老师
第二篇:web实验报告二
WEB系统开发
实验报告
实验二
实验题目:利用Mial对象实现邮件在线发送指导老师:
专业班级:计算机科学与技术系 姓 名:
20xx年 4月8日
实验类型__验证性__ 实验室_软件实验室三__
一、实验题目
利用Mail对象实现邮件在线发送
二、实验目的
通过本次实验,使学生了解ASP.NET内置对象,掌握Mail对象的使用方法,利用Mail对象实现邮件在线发送。
三、实验内容
1、设计一个注册页面,实现注册功能。
2、注册成功后向注册邮箱发送激活链接。
3、通过点击激活链接,实现注册账号的激活功能。
四、实验说明
1、RequiredFieldValidator控件检查其初始值与验证控件包含的值是否相同;
2、CompareValidator控件用于将输入控件的值与指定值相比较,以确定参与比较运算的两个值是否相匹配;
3、RangeValidator控件用于检查用户的输入是否在指定的范围内;
4、RegularExpressionValidator控件用于确定输入控件的值是否与某个正则表达式所定义的模式相匹配。
五、核心代码
1、登录页面代码:
Protected Sub btnlogin_Click(......) Handles btnlogin.Click
Dim o As New mydata.clsUser
Dim dr As Data.SqlClient.SqlDataReader
dr = o.getall2dr(" user_id='" & user_id.Text & "'")
If dr.Read Then
If Me.user_pwd.Text = dr.Item("user_pwd") Then
If dr.Item("user_state") = "启用" Then
Response.Cookies("user_id").Value = Me.user_id.Text
Response.Cookies("user_id").Expires = Now.AddDays(1)
Session("user_id") = Me.user_id.Text
Response.Redirect("login.aspx")
Else
Me.Label1.Text = "该用户未启用"
End If
Else
Me.Label1.Text = "密码错误"
End If
Else
Me.Label1.Text = "用户ID不存在"
Response.Redirect("zhuce.aspx")
End If
End Sub
2、注册页面代码:
Protected Sub btnzhuce_Click(......) Handles btnzhuce.Click
1
Dim o As New mydata.clsUser
Dim sr As String
o.dUser_id = Me.user_id.Text
o.dUser_Pwd = Me.user_pwd.Text
o.dUser_Email = Me.user_email.Text
Dim dr As Data.SqlClient.SqlDataReader
dr = o.getall2dr(" user_id='" & user_id.Text & "'")
If dr.Read Then
If Me.user_id.Text = dr.Item("user_id") Then
Me.txtzccg.Text = "该用户已存在"
End If
Else
sr = o.addNewUser
End If
If sr = "1" Then
Me.txtzccg.Text = "注册成功"
Dim mailMsg As New System.Net.Mail.MailMessage("sina@163.com", Me.user_email.Text)
mailMsg.Subject = "激活链接"
mailMsg.Body = "<a href=http://localhost/webSHY2/zccg.aspx?user_id=" & Me.user_id.Text & ">单击此处进行账号激活</a>"
mailMsg.IsBodyHtml = True
Dim mySmtp As New System.Net.Mail.SmtpClient("")
mySmtp.Credentials = New System.Net.NetworkCredential("12qwy", "151xxxxxxxx")
mySmtp.Send(mailMsg)
Me.txtzccg.Text = "注册成功!"
Else
Me.txtzccg.Text = "注册成功!" & sr
End If
End Sub
3、注册成功页面代码
Protected Sub form1_Load(......) Handles form1.Load
Dim o As New mydata.clsUser
Dim sr As String
o.dUser_id = Request.QueryString("user_id")
sr = o.JH
If sr = "1" Then
Me.Label1.Text = Request.QueryString("user_id") & "账号激活成功"
End If
End Sub
4、类库代码
Public Function getall2dr(ByVal strWhere As String) As SqlClient.SqlDataReader
Dim conn As New SqlClient.SqlConnection
conn.ConnectionString = "server= ZGC-20111121JBZ;uid=sa;pwd=123;database=zhuce"
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
2
If strWhere = "" Then
cmd.CommandText = "select * from ZC_User"
Else
cmd.CommandText = "select * from ZC_User where " & strWhere
End If
Dim dr As SqlClient.SqlDataReader
conn.Open()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Return dr
End Function
Public Function addNewUser() As String
Dim conn As New SqlClient.SqlConnection
conn.ConnectionString = "server=qiao-pc;uid=sa;pwd=123;database=zhuce"
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "insert into ZC_User(user_id,user_pwd,user_email,user_state) values('" & dUser_id & "','" & dUser_Pwd & "','" & dUser_Email & "','停用')"
Try
conn.Open()
cmd.ExecuteNonQuery()
Return "1"
Catch ex As Exception
Return "-1" & ex.Message
End Try
End Function
Public Function JH() As String
Dim conn As New SqlClient.SqlConnection
conn.ConnectionString = "server=qiao-pc;uid=sa;pwd=123;database=zhuce"
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "update ZC_User set user_state='启用' where user_id='" & dUser_id & "'"
Try
conn.Open()
cmd.ExecuteNonQuery()
Return "1"
Catch ex As Exception
Return "-1" & ex.Message
End Try
End Function
六、运行结果
1、运行程序
3
2、输入不存在的用户名,并点击登录
3、注册页面
4、当用户名为空时
5、当两次输入密码不同时
4
6、当E-mail格式不正确时
7、信息输入正确,并注册成功
8、账号激活
5
9、数据库信息
七、实验总结
通过本次实验,我了解了Mail对象的使用方法,对RequiredFieldValidator、 CompareValidator和RegularExpressionValidator等控件有了一定的了解,并且学会了如何利用实现Mail对象实现邮件在线发送。
6