【SQL开源代码栏目提醒】:网学会员为广大网友收集整理了,邮箱验证激活用户状态源码 - 编程语言,希望对大家有所帮助!
邮箱验证基本过程是这样的 1.提交用户注册信息。
2.写入数据库此时账户状态UNACTIVE。
3.将用户名密码或其它标志字符组成加密字符串。
4.将3中的字符串作为激活URL的参数发到用户提交的邮箱。
5.用户点击URL后
程序解密URL传过来的加密字符串是否正确。
6.如果正确则激活账户否则不激活。
分享ASP.
NET 实现
注册用户 邮箱激活 问题的提出 当一个用户注册后首先他不能立即使用用户名和密码登录需要使用邮箱验证激活后方能使用。
Code: EmailInfo.aspx起始页文件 前台
代码 代码 Fill in Your Details Your Name : User Name : Email Address : Password : Confirm Password : 后台
代码 代码 using System using System.Collections.Generic using System.Linq using System.Web using System.Web.UI using System.Web.UI.WebControls using System.Data.SqlClient using System.Data using System.Configuration using System.Net.Mail using System.Net using System.Resources using System.IO namespace EmailActive public partial class EmailInfo : System.Web.UI.Page protected void Page_Loadobject sender EventArgs e protected void btnRegister_Clickobject sender EventArgs e string iUserID Users.RegisterClienttxtUserName.Text.Trim txtEmail.Text.Trim txtPassword.Text.Trim txtName.Text.Trim.ToString string sData File.ReadAllTextServer.MapPath/NewMemberEmail.txt Label1.Text iUserID Response.WritesData sData sData.ReplaceName txtName.Text.Trim sData sData.ReplaceLINK http://localhost:18277这里根据VS生成地址修改 /Activate.aspxUserID iUserID UN Server.UrlEncodetxtUserName.Text.Trim //使用Server.UrlEncode解决QueryString传递中文乱码
问题 sData sData.ReplaceUserName txtUserName.Text.Trim sData sData.ReplacePwd txtPassword.Text.Trim SMTPManager.SendEmailzfj123589gmail.com txtName.Text.Trim txtEmail.Text.Trim sData New Member Activation false Response.RedirectLogin.aspx public class Users public static int RegisterClientstring UserName string EmailAddress string Password string Name string strConn ConfigurationManager.ConnectionStringsReg.ConnectionString SqlConnection conn new SqlConnectionstrConn conn.Open SqlCommand cmd conn.CreateCommand cmd.CommandText Insert into tblUsers UserName Email Password Name Values UserName EmailAddress Pass
word Name select UserID SCOPE_IDENTITY cmd.CommandType CommandType.Text cmd.Parameters.AddUserName SqlDbType.VarChar 50 cmd.ParametersUserName.Value UserName cmd.Parameters.AddEmailAddress SqlDbType.VarChar 100 cmd.ParametersEmailAddress.Value EmailAddress cmd.Parameters.AddPassword SqlDbType.VarChar 50 cmd.ParametersPassword.Value Password cmd.Parameters.AddName SqlDbType.VarChar 100 cmd.ParametersName.Value Name SqlParameter p cmd.Parameters.AddUserID SqlDbType.Int p.Direction ParameterDirection.Output int newUserID 0 cmd.ExecuteNonQuery conn.Close newUserID intp.Value return newUserID /// /// SMTPManager发送邮件类 /// ///FROM 发送者邮箱地址 FromDisplayName 发送者名字 TO接受者邮箱地址 BODY邮件内容SUBJECT 主题行 bIsHtml是否是
HTML邮件 public class SMTPManager public SMTPManager public static void SendEmailstring FROM string FromDisplayName string TO string BODY string SUBJECT bool bIsHtml MailMessage m new MailMessage m.From new MailAddressFROM FromDisplayName m.To.AddTO m.Subject SUBJECT m.Body BODY m.BodyEncoding System.Text.Encoding.UTF8 m.IsBodyHtml bIsHtml m.ReplyTo new MailAddressFROM //smtp.126.com不可用所有使用smtp.gmail.com SmtpClient smtp new SmtpClientsmtp.gmail.com 587 smtp.Credentials new NetworkCredentialzfj123589 123zxcvb smtp.EnableSsl true smtp.Sendm Activate.aspx激活页面 前台
代码 后台
代码 代码 using System using System.Collections.Generic using System.Linq using System.Web using System.Web.UI using System.Web.UI.WebControls using System.Data using System.Data.SqlClient using System.Configuration namespace EmailActive public partial class Activate : System.Web.UI.Page protected void Page_Loadobject sender EventArgs e string sUserID string.Empty string sID Request.QueryStringUserID.Trim lblMsg.Text sID //Server.UrlDecode对URL地址进行解密 string sUserName Server.UrlDecodeRequest.QueryStringUN.ToString.Trim string strConn ConfigurationManager.ConnectionStringsReg.ConnectionString SqlConnection conn new SqlConnectionstrConn SqlCommand cmd conn.CreateCommand try conn.Open cmd.CommandText Select UserID from tblUsers where UserName sUserName sUserID cmd.ExecuteScalar.ToString.Trim finally conn.Close if String.ComparesID sUserID 0 conn.Open SqlCommand
sqlCmd conn.CreateCommand cmd.CommandText Update tblUsers set Verified 1 where UserName sUserName string UserID cmd.ExecuteNonQuery.ToString conn.Close Response.RedirectLogin.aspx else lblMsg.Text Failed to activate your account. Please contact zfj123589gmail.com Login.aspx登录界面 前台
代码 代码 UserName: Password: 后台
代码 代码 1 using System 2 using System.Collections.Generic 3 using System.Linq 4 using System.Web 5 using System.Web.UI 6 using System.Web.UI.WebControls 7 using System.Data 8 using System.Data.SqlClient 9 using System.Configuration 10 11 namespace EmailActive 12 13 public partial class Login : System.Web.UI.Page 14 15 protected void Page_Loadobject sender EventArgs e 16 17 lblShow.Visible false 18 19 20 protected void btnLog_Clickobject sender EventArgs e 21 22 string strConn ConfigurationManager.ConnectionStringsReg.ConnectionString 23 SqlConnection conn new SqlConnectionstrConn 24 conn.Open 25 SqlCommand cmd conn.CreateCommand 26 cmd.CommandText Select Verified from tblUsers where UserName txtUserName.Text and Password txtPassword.Text 27 string strVer cmd.ExecuteScalar.ToString 28 conn.Close 29 30 //判断Verified字段是否为1如果为1说明已经激活.. 31 if String.ComparestrVer 1 0 32 33 Response.RedirectSuccess.aspx 34 35 36 else 37 38 lblShow.Visible true 39 40 41 42 43 44 45 Success.aspx成功激活后的界面 不介绍了就一个标签显示成功看源
代码.. Web.config中数据库连接自己修改下。
注意发送邮件时发现smtp.126.comsmtp.163.com不能使用于是使用smtp.gmail.com发送邮件。
通过这个例子学到不少东西 发送邮件QueryString传值解决乱码问题。
。
在WIN 7 Visual Web Develop 2008调试通过。