• 基本流程图

  • 注册页面就不再写出,现在将发送邮件的代码粘贴出来
 
public ActionResult SendEmial()
{
int customerID= ;
string validataCode = System.Guid.NewGuid().ToString();
try {
System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(xxxxxxxx@163.com, "wode"); //填写电子邮件地址,和显示名称
System.Net.Mail.MailAddress to = new System.Net.Mail.MailAddress(xxxxx@qq.com, "nide"); //填写邮件的收件人地址和名称
//设置好发送地址,和接收地址,接收地址可以是多个
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.From = from;
mail.To.Add(to);
mail.Subject = "主题内容"; System.Text.StringBuilder strBody = new System.Text.StringBuilder();
strBody.Append("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");
strBody.Append("<a href='http://localhost:3210/Order/ActivePage?customerID=" + customerID+ "&validataCode =" + validataCode + "'>点击这里</a></br>"); mail.Body = strBody.ToString();
mail.IsBodyHtml = true;//设置显示htmls
//设置好发送邮件服务地址
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";
//填写服务器地址相关的用户名和密码信息
client.Credentials = new System.Net.NetworkCredential("xxxxxxxx@163.com", "xxxxxx");
//发送邮件
client.Send(mail);
}
catch {} return new EmptyResult();
}
 

说明:

  1. 填写服务器地址相关的用户名和密码信息  client.Credentials = new System.Net.NetworkCredential("xxxxxxxx@163.com", "xxxxxx");
    这个需要填写发件方的邮箱名和密码
  2. 此处发送的邮件内容不会显示出来链接的地址信息,只会以超链接的方式存在,效果如图所示:

3.  验证码是否有效分为两种情况:1.验证是否在规定时间内,激活链接;2.验证码和数据库中保存的是否相同

  • 实现思路:
  1. 页面需要三个页面:1.注册页面;2.激活页面;3.失败页面。
  2. 数据库表中添加一个激活的状态字段-1或1 (-1为未激活,1未激活),在添加一个验证码字段validateCode,最后在添加一个注册时间字段registeredDate
  3. 程序中,注册页面添加注册信息,随机生成注册验证码(GUID)添加到数据库中,把用户id和验证码作为参数发送到邮箱中
  4. 因为用的是asp.net mvc 所以不需要自己写代码获取url中的参数,action 中的参数只要和url 中的对应就行了,action会帮我们自动的获取url 中的参数信息
  5. 通过action 中的参数信息查询数据库,判断是否可以激活注册信息

asp.net mvc 注册中的邮箱激活功能实现的更多相关文章

  1. asp.net mvc 注册中的邮箱激活功能实现(一)

    基本流程图 注册页面就不再写出,现在将发送邮件的代码粘贴出来 public ActionResult SendEmial() { ; string validataCode = System.Guid ...

  2. asp.net mvc 注册中的邮箱激活功能实现(二)

    邮件发送功能封装 /// <summary>        /// 发送注册邮件        /// </summary>        /// <param name ...

  3. 白话ASP.NET MVC之二:Controller激活系统的概览

    前文简介:我们抽象类路由规则的对象,RouteBase是路由对象的抽象基类,ASP.NET 的路由系统中有唯一一个从RouteBase继承的路由对象,那就是Route类型了.我们注册了路由对象Rout ...

  4. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  5. ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

    在ASP.NET MVC 4中,可以很简单地实现针对不同的浏览器自适应布局和视图.这个得归功于MVC中的"约定甚于配置"的设计理念. 默认的自适应 MVC 4自动地为移动设备浏览器 ...

  6. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...

  7. 在ASP.NET MVC项目中使用极验验证(geetest)

    时间 2016-03-02 18:22:37 smallerpig 原文  http://www.smallerpig.com/979.html 主题 ASP.NET MVC   geetest开发体 ...

  8. [转]在 ASP.NET MVC 4 中创建为移动设备优化的视图

    原文链接 https://msdn.microsoft.com/zh-cn/magazine/dn296507.aspx 如果深入探讨有关编写移动设备网站的常识性考虑因素,会发现其中有一种内在矛盾.  ...

  9. 在ASP.NET MVC环境中使用加密与解密

    在.NET Framework 4.5的NET框架中,在程序中加密与解密很方便.现在均学习ASP.NET MVC程序了,因此Insus.NET也在此写个学习的例子.在需要时可以参考与查阅. 写一个Ut ...

随机推荐

  1. Java学习之路 第四篇 oop和class (面向对象和类)

    本人水平有限,创作本文是为了记录学习和帮助初学者学习,欢迎指正和补充 一.面向对象编程的设计概述 很多同学都在学校学了电脑的编程,现在的书籍大部分都是oop面向对象编程,一个很抽象的的名字,比较难以理 ...

  2. WCF探索之旅(三)——IIS公布WCF服务

    在之前的博客已经对WCF的基础知识做了介绍.而且做了一个简单的小样例. 假设你看了之前的博客,相信你已经对WCF有了一定的掌握.这篇博客主要说一下怎样把WCF服务公布的IISserver上. 在上篇博 ...

  3. python 基础 8.4 re的 spilt() findall() finditer() 方法

      #/usr/bin/python #coding=utf-8 #@Time   :2017/11/18 18:24 #@Auther :liuzhenchuan #@File   :re的spli ...

  4. npm install --save 、--save-dev 、-D、-S 的区别与NODE_ENV的配置

    https://blog.csdn.net/jwl_willon/article/details/81054978 1.npm install <=> npm i --save   < ...

  5. Drupal 安装过程

    php.ini 文件 https://drupal.stackexchange.com/questions/164172/problem-installing-in-local-the-transla ...

  6. ABAP 数值转换大写

    转自:http://www.dasunny.com/wordpress/sapnotes/2015113091.htmlSAP标准的数值转换函数 SPELL_AMOUNT, 仅对整数部分进行了处理,小 ...

  7. Maximum Subsequence Sum 【DP】

    Given a sequence of K integers { N​1​​, N​2​​, -, N​K​​ }. A continuous subsequence is defined to be ...

  8. Vim设置括号自动补全和快速跳出

    一.设置括号自动补全 inoremap ' ''<ESC>i inoremap " ""<ESC>i inoremap ( ()<ESC&g ...

  9. 大数据初级笔记二:Hadoop入门之Hadoop集群搭建

    Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...

  10. CSS3实现自定义Checkbox动画

    CSS3实现自定义Checkbox动画是一款CSS3自定义checkbox,而且这款checkbox还带有动画效果,当你选中checkbox的时候,会以动画的方式打上一个大大的勾. 源码下载:http ...