MVC应用程序请求密码的功能(二)

在完成《MVC应用程序请求密码的功能(一)http://www.cnblogs.com/insus/p/3471534.html之后,如果你照着做,所有请求只会列在MailingList表中,并没发送出去。

Insus.NET现在就继续下去,让这个功能能尽量完美下去。

在上一篇中,有一个存储过程:

在这个存储过程#38与#39行代码,是一个超链接,它是真正存在MVC的应用程序中。也就是说,给会员发送邮件时,就是把这个链接的视图发送至会员的邮箱中。因此,我们得创建这个视图。

创建这个视图,得先创建一个Model,是为了方便在这个视图中能显示动态数据。

去控制器MemberController.cs添加一个视图ActionResult:

创建视图:

这个视图即是邮件内容。这些内容你完全可以自定制,在此仅供参考。

现在我们要处理MailingList这个表的数据了,这个表的数据,就是会员请求密码时,产生的一笔记录。每一笔记录,即是要向会员发送电子邮件。这个可以写一个存储过程,时行分发它们:

先是创建了一个临时表,把所有记录的插入至这个临时表中,然后去删除刚才插入临时表相同的记录。最后是临时表LEFT JOIN 邮件参考表一起返回给MVC应用程序。在应用程序的Entities目录,创建一个实体:

接下来的实现,也可算是本篇的重点,就是MVC应用程序自动执行发送邮件的功能:
去Insus.NET的博客,打开http://www.cnblogs.com/insus/archive/2010/03/16/1687688.html 下载InsusMailUtility 然后参考至MVC的应用程序中:

在MVC应用程序中的App_Start目录,写AutomationTask.cs:

此时,还需要修改Global.asax文件,添加下图高亮行代码。

这样只要应用程序运行,AutomationTask.cs也会自动执行。现在可以演示一下了,先去修改一个测试会员的邮箱,改为真实邮箱:

然后再跟第一篇最后一个演示一样,使用这个会员帐号请求一次密码,然后打开邮箱,就会看到收到的邮件:

会员只要点击那超链接,将导向重置密码的视图。现在我们需要写重置密码的功能,先创建一个存储过程:

先是判断此token是否存在或是是否过期,如果没有,以token找到帐号与邮箱。然后更新密码,最后是删除ChangeRequestPassword记录。过期的均删除,修改密码成功的也删除。

在Entities目录下,创建一个SecurityEntity.cs:

修改控制器MemberController.cs添加一个ActionResult和一个JsonResult:

创建ResetPassword视图:

演示一下,更改密码:

 
 
标签: AjaxJqueryEmailMVC

最新文章

  1. Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
  2. 判断IE8
  3. Android之项目推荐使用的第三方库
  4. EasyGUI的安装
  5. 盘点六大在中国复制失败的O2O案例
  6. mybatis09
  7. gdb 调试coredump文件过程
  8. flex4 日期类型字符串转日期类型(string转Date)(转)
  9. 2.Freshman阶段学习内容的确定
  10. 创建内向交货单 BBP_INB_DELIVERY_CREATE
  11. bash shell:重定向标准错误输出
  12. Modern 阅读笔记 一 PSR标准
  13. L3-002. 堆栈
  14. 模式识别(1)——PCA算法
  15. 了解JDK 6和JDK 7中substring的原理及区别
  16. TCP-IP详解学习笔记2
  17. C# 未能加载文件或程序集或它的某一个依赖项。需要强名称程序集
  18. 【ES】学习11-多桶排序
  19. LOJ10155数字转换
  20. java 虚拟机栈

热门文章

  1. FFmpeg 协议初步学习
  2. Cocos2d-x学习笔记(两)Cocos2d-x总体框架
  3. android 应用程序框架
  4. Android_显示器本身被卸载应用程序
  5. The Stern-Brocot Number System(排序二进制)
  6. Android微信道共用,没有反应
  7. 【高德API】如何利用MapKit开发全英文检索的iOS地图
  8. Apache & WebDav 配置(二)
  9. OWIN– 解耦,协作和开放
  10. 国籍控件(js源码)