Asp.Net 注册 邮箱激活_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Asp.Net 注册 邮箱激活

Asp.Net 注册 邮箱激活

 2014/9/12 22:09:15  永远的世界  程序员俱乐部  我要评论(0)
  • 摘要:数据库表的设计State为用户状态0为禁用1为可用默认为0,下面有个UserGUID,这个字段将来用于激活账户首先你要写一个表单,验证码神马的,这个我就不写了。。直接写处理的代码在下面if(IsPostBack)2{3stringuserName=Request["UserName"];4stringuserPwd=Request["UserPwd"];5stringuserEmail=Request["UserEmail"];6stringEmailGUID=Guid.NewGuid()
  • 标签:.net ASP.NET net

数据库 表的设计 

 

State为用户状态  0为禁用  1为可用  默认为0,下面有个UserGUID,这个字段将来用于激活账户

 

首先你要写一个表单,验证码神马的,这个我就不写了。。直接写处理的 代码在下面

          if (IsPostBack)
 2             {
 3                 string userName = Request["UserName"];
 4                 string userPwd = Request["UserPwd"];
 5                 string userEmail = Request["UserEmail"];
 6                 string EmailGUID = Guid.NewGuid().ToString();
 7              
 8                 //UserInfosEntities
 9                 if (CheckValidCode())
10                 {
11                     if (InsertUserInfo(new userinfo()
12                     {
13                         UserName = userName,
14                         UserPwd = userPwd,
15                         State = 0,
16                         UserEmail = userEmail,
17                         UserGUID = EmailGUID
18                         
19                     }))
20                     {
21                         
22                         string str = Request.ServerVariables["Http_Host"];           //这句话的意思是获取域名和端口,因为我是在本机调试的,要是重新生成的话端口就改了  - - 我很郁闷 ...这是大神告诉我的...
23                         MailMessage mailMsg = new MailMessage();                         //要引入System.Net这个Assembly
24                         mailMsg.From = new MailAddress("670196906@qq.com", "自己的名字"); //源邮件地址 
25                         mailMsg.To.Add(new MailAddress(userEmail, "对方的名字"));         //目的邮件地址。可以有多个收件人
26                         mailMsg.Subject = "激活帐号";                                     //发送邮件的标题 
27                         userName = Common.Base64.EncodeBase64(Encoding.UTF8, userName);    //这个是把传去的名字转换成base64的,我试过Encoding,不行,找了好久,中文一直乱码,只好把它转成这个样子了。。

     
28                         string emailStr 
                = string.Format("单击以下激活链接,激活帐号http://{0}/ActivUserInfo.aspx?UserName={1}&GUID={2}",str,userName,EmailGUID);                  //这个就是将来发到邮箱里面的激活链接
      


29                         mailMsg.Body = emailStr;                                      //发送邮件的内容 
30                         mailMsg.IsBodyHtml = true;                      //内容是否是HTML
31                         mailMsg.BodyEncoding = Encoding.UTF8;                //编码格式为UTF-8
32                         SmtpClient client = new SmtpClient("smtp.qq.com");            // 发件人所使用邮箱的SMTP服务器地址。  
33                         client.Credentials = new NetworkCredential("发送邮件的帐号", "发送邮件的密码"); //发件人邮箱的用户名和密码.
34                         client.Send(mailMsg);                        //发送邮件
35                         Response.Redirect("/Admin.aspx");
36 
37                     }
38                     else
39                     {
40                         Response.Redirect("/Login.aspx");
41                     
42                     }
43 
44 
45                 }
46                 else
47                 {
48 
49                     Message = "验证码输入错误,请重新输入!!!";
50                 }

 

 

 

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Web;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8 
 9 namespace WebDemoUserInfo
10 {
11     public partial class ActivUserInfo : System.Web.UI.Page
12     {
13         public string ActiveMessage { get; set; }
14         protected void Page_Load(object sender, EventArgs e)
15         {                                                        
16             string userName = Common.Base64.DecodeBase64(Encoding.UTF8, Request["UserName"]);   //把传过来的UserName解密,Base64的代码在后面
17             string gUid = Request["GUID"];                                //
18             if (userName != null && gUid != null)
19             {
20                 int result = CheckUserInfo(userName, gUid);
21                 switch (result)
22                 {
23                     case 0:
24                         ActiveMessage = "激活失败";
25                         break;
26                     case 1:
27                         ActiveMessage = "激活成功";
28                         break;
29                     case 2:
30                         ActiveMessage = "不能重复激活!!!";
31                         break;
32                     defalut: ActiveMessage = "未知错误,请联系系统管理员!!!";
33                 }
34             }
35 
36 
37         }
38 
39         private int CheckUserInfo(string userName, string gUID)
40         {
41             try
42             {
43                 var db = new UserInfosEntities();
44                 if (db.userinfo.Count(i => i.UserName == userName && i.UserGUID == gUID) == 1)
45                 {
46                     var model = db.userinfo.FirstOrDefault(i => i.UserGUID == gUID);
47                     if (model != null && model.State == 0)
48                     {
49                         model.State = 1;
50 
51                     }
52                     else
53                     {
54                         return 2;
55                     }
56                     return db.SaveChanges() == 1 ? 1 : 0;
57                 }
58                 else
59                 {
60                     return 0;
61                 }
62             }
63             finally
64             {
65                 Dispose();
66             }
67         }
68     }
69 }


logs_code_hide('6a5f0013-94ed-4d67-bb73-bbfa4ad4d26d',event)" src="/Upload/Images/2014091222/2B1B950FA3DF188F.gif" alt="" />
 1   public static class Base64
 2     {
 3         public static string EncodeBase64(Encoding encoding, string source)
 4         {
 5             byte[] bytes = encoding.GetBytes(source);
 6             return Convert.ToBase64String(bytes);
 7         }
 8 
 9         public static string DecodeBase64(Encoding encoding, string result)
10         {
11             byte[] bytes = Convert.FromBase64String(result);
12             return encoding.GetString(bytes);
13         }
14     }
Base64 加解密

整天没事自己研究...觉得还有好多要学....加油...

发表评论
用户名: 匿名