邮箱验证

实现用户注册时,向其油箱发送激活码邮件,并进行状态处理。

主页:
protected void Button1_Click(object sender, EventArgs e)//这里是注册需要向数据库中存内容
{
int nums = 0;
//在注册时就生成激活码,在此同时要给用户的邮箱发激活链接邮件,只有点击了激活链接后数据库中的字段active才能变成true
string username = utxt.Text;
string password = ptxt.Text;
string mail = Etxt.Text;
string code = Guid.NewGuid().ToString().Substring(0, 8);//生成激活码
//连接数据库将内容存到数据库中
string mailconstr = ConfigurationManager.ConnectionStrings["mailconstr"].ConnectionString;
using(SqlConnection conn=new SqlConnection(mailconstr))
{
string sql="insert into mailregister(username,password,Email,activecode) values(@username,@password,@Email,@activecode) ";
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
SqlParameter[] prams = new SqlParameter[] { new SqlParameter("@username", username), new SqlParameter("@password", password), new SqlParameter("Email", mail), new SqlParameter("@activecode", code) };
cmd.Parameters.AddRange(prams);//将这个数组中的内容都加到了cmd中
conn.Open();
nums=cmd.ExecuteNonQuery();
}


}
if (nums > 0)//如果插入成功
{
//并且调用发送邮件的方法;这里需要获取下刚刚插入内容的id;
this.send(mail, code);//,int id
//就跳转到另一个页子提示注册成功
Response.Redirect("victory.aspx");

}
else { Response.Write("未插入成功!"); }
//连接数据库插数据redirect另一页
//插入完成给用户发邮件第一个方法
}
public void send(string mail,string code)//,int 2
{
//int id = 2;
MailMessage msg=new MailMessage();//定义个邮件
msg.From=new MailAddress("niugy7@163.com");
msg.To.Add(mail);
msg.Subject="请激活注册";
StringBuilder sb=new StringBuilder();
sb.Append("点击激活");
sb.Append("<a href='http://localhost:1250/WebForm2.aspx?activecode=" + code + "&&id=9 '>激活</a>");//这里需要一个程序处理下activecode是否与数据库一致;并且需要两个参数;注意连接在跳转时要给出本机的本项目的路径http://localhost:1250web属性要改改为特定端口的;
msg.Body=sb.ToString();//点击后就用点击的内容与数据库对应的activecode进行核对一致就将active改为true
msg.IsBodyHtml = true; //因为上面sb中有html文件

SmtpClient client = new SmtpClient();//smtp服务器
client.Host = "smtp.163.com";//发件方smtp
client.Port = 25;//端口
NetworkCredential credential = new NetworkCredential();//声明一个身份验证类
credential.UserName = "niugy7";
credential.Password = "niuguangyuan";
//声明完证书要提交给smtp代理才可以发
client.Credentials = credential;
client.Send(msg);//通过smtp代理client发送

}
//redirect另一页

激活页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;

namespace 有激活功能的Mail
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

int nums = 0;
this.Response.ContentType = "text/plain";
this.Response.Write("Hello World");
string code = this.Request["activecode"];
int id = Convert.ToInt32(this.Request["id"]);
//取到地址里传过来的值连接数据库进行比较修改
string activecode = "";
string constr = ConfigurationManager.ConnectionStrings["mailconstr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
string sql = "select activecode from mailregister where id=@id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@id", id);
activecode = cmd.ExecuteScalar().ToString();//获取第一行第一列与activecode比
}

}
if (activecode == code)//如果一致连数据库改active的值
{
using (SqlConnection conn = new SqlConnection(constr))
{
string sql = "update mailregister set active=1 where id=@id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@id", id);
conn.Open();
nums = cmd.ExecuteNonQuery();
}
}
if (nums > 0)
{
this.Response.Write("激活成功");
}
else
{ this.Response.Write("激活失败"); }
}
else { this.Response.Write("激活码不正确!"); }
}
}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值