邮箱几乎
来源:互联网 发布:淘宝代发论文被骗 编辑:程序博客网 时间:2024/04/30 11:03
在注册大型网站的时候,如像新浪的时候,填写完注册信息后,都会给用户的邮箱发送一个激活注册账号的邮件,让我们激活,然后才可以使用,那么这么做的好处是什么呢,个人认为有下面两个好处:
1、
2、
那么怎么样去实现这种功能呢,思路大概是这样的:
1、
2、
证码出现,所以最好在加一个参数)
3、
4、
5、
6
具体代码如下:
Random random = new Random();string checkCode = "";for (int i = 0; i <= 4; i++){int num = random.Next(1, 10);checkCode += num.ToString();}string validataCode = FormsAuthentication.HashPasswordForStoringInConfigFile(checkCode, "md5");user.validateCode = validataCode;string strSmtpServer = "smtp.163.com";string strFrom = "";string strFromPass = ""string strto = user.email;string strSubject = "账号激活";System.Text.StringBuilder strBody = new System.Text.StringBuilder();strBody.Append("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!");strBody.Append("点击这里");strBody.Append("如未能激活请点击下面链接:http://localhost:2493/web/Operate.aspx?userName=" + user.userName + "&validateCode=" + user.validateCode + "");SendSMTPEMail(strSmtpServer, strFrom, strFromPass, strto, strSubject, strBody.ToString());//发送邮件public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody){System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);client.UseDefaultCredentials = false;client.Credentials =new System.Net.NetworkCredential(strFrom, strFromPass);client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject, strBody);message.BodyEncoding = System.Text.Encoding.UTF8;message.IsBodyHtml = true;client.Send(message);} 点击链接进入到处理页面operate.aspx 这样以来,邮箱激活账号的基本功能就实现了,有什么意见大家可以提提!protected void Page_Load(object sender, EventArgs e){if(!IsPostBack){if (Request.QueryString["userName"] != null && Request.QueryString["validateCode"]!=null){string userName = Request.QueryString["userName"].ToString();string validateCode = Request.QueryString["validateCode"].ToString();operateLink(userName, validateCode);}}}public void operateLink(string userName,string validateCode){User user = OperateData.GetUserByUserName(userName);if (user == null){lblAlert.Text = "该注册信息已不存在,验证失败";}else{//验证过期DateTime ZCTime = user.addData;DateTime NowTime = DateTime.Now;TimeSpan time1 = new TimeSpan(ZCTime.Ticks);TimeSpan time2 = new TimeSpan(NowTime.Ticks);string diff = time2.Subtract(time1).TotalHours.ToString();double time = Convert.ToDouble(diff);//验证是否过期if(time>48){lblAlert.Text = "验证码已经过期,验证失败";return;}//验证链接是否用过if(user.validateCode==""){lblAlert.Text = "已经验证过了,请返回到登录页面,登录体验吧";return;}//验证激活账号,修改账号状态if(validateCode==user.validateCode){OperateData.UpdateValidateCode(user.id);lblAlert.Text = "验证成功,请返回到登录页面,登录体验吧";}}}
- 邮箱几乎
- 几乎就
- 几乎覆盖
- 邮箱
- 邮箱
- 邮箱
- 邮箱
- 邮箱
- 邮箱
- 工作几乎尘埃落定了
- 木几乎h754yu7654juh7
- 几乎有序数组排序
- 几乎所有的数据库连接方式
- 几乎完美的四元数旋转
- 几乎所有食物的英文翻译
- 几乎所有食物的英文翻译
- hibernate几乎所有数据库配置
- 几乎所有食物的英文翻译
- if-else
- 【Dialer】android6.0拨号界面分析<二>
- Xcode7基本操作 详解
- 关于IIS部署.net项目问题解决方法
- iOS app 更多操作 代码(邮件、facebook、twitter等)
- 邮箱几乎
- angularjs介绍
- Gcc常用命令详解
- (Boost)mutex scoped_lock
- spring mvc restful工程demo
- ros actionlib多客户端加单服务器的同步问题
- Swift语言精要 - Operator(运算符重载)
- Java中 复制文件并命名的超简洁写法
- hdu3440 House Man--单源最短路径&差分约束