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

MVC应用程序请求密码的功能(二)的更多相关文章

  1. MVC应用程序请求密码的功能1

    MVC应用程序请求密码的功能(一) 经过一系列的练习,实现了会员注册<MVC会员注册>http://www.cnblogs.com/insus/p/3439599.html,登录<M ...

  2. MVC应用程序请求密码的功能(一)

    经过一系列的练习,实现了会员注册<MVC会员注册>http://www.cnblogs.com/insus/p/3439599.html,登录<MVC应用程序实现会员登录功能> ...

  3. 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段

    创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...

  4. Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)

    简单介绍 关于SignalR的简单实用 请参考 Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室) 在上一篇中,我们只是介绍了简单的消息推送,今天我们来修改一下,实现 ...

  5. 详解ASP.NET MVC应用程序请求生命周期

    ------转载当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request 和Http response 过程中, ...

  6. webpack4+node合并资源请求, 实现combo功能(二十三)

    本文学习使用nodejs实现css或js资源文件的合并请求功能,我们都知道在一个复杂的项目当中,可能会使用到很多第三方插件,虽然目前使用vue开发系统或者h5页面,vue组件够用,但是有的项目中会使用 ...

  7. MVC应用程序实现会员登录功能

    实现之前,我们已经把验证成功的信息存在cookie里<MVC登录前准备写好cookie>http://www.cnblogs.com/insus/p/3464105.html.现在就可以实 ...

  8. asp.net MVC 应用程序的生命周期

    下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html       ...

  9. asp.net MVC 应用程序的生命周期(上)

    首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的 ...

随机推荐

  1. 第一次测试HTML和CSS

    1.HTML(Hyper Text Markup Languange)超文本标记语言.HTML文件扩展名通常是:htm和html. <html> <head> <titl ...

  2. Cloudera CDH 5集群搭建(yum 方式)

    1      集群环境 主节点 master001 ~~ master006 从节点 slave001 ~~ slave064 2      安装CDH5的YUM源 rpm -Uvhhttp://ar ...

  3. ArcPad 10 的安装和部署

    ArcPad它被安装在一个手持装置或业内外的移动终端ArcGIS产品,那ArcPad这是Esri软件产品,哦,不是硬件. 虽然优于ArcGIS Desktop功能复杂的乐趣,是对于野外作业.数据採集等 ...

  4. zabbix-agent TIME_WAIT 过多

    一.系统环境 操作系统: Centos 6.4 64bit zabbix-agent 版本: Zabbix agent v2.2.7 (revision 50148) (24 October 2014 ...

  5. linux_apt-get 使用详解

    安装应用从互联网上下载查询时 用到,今天安装个 mysql 简化流程如下: apt-cache search mysql-server sudo apt-get install mysql-serve ...

  6. Linux应用环境

    转载Linux应用环境 阅读目录 引言 使用 Linux 的一些困难和解决方法 我眼中的Linux哲学总纲 我这一系列随笔中展现出的Linux哲学 Linux之得和Linux之失 总结 回到顶部 引言 ...

  7. 【百度地图API】如何制作孪生姐妹地图?

    原文:[百度地图API]如何制作孪生姐妹地图? 任务描述: 我想要两张一模一样的地图!我想要双子地图!我想要孪生姐妹地图! 好好好,统统满足大家! 在这里我不需要使用百度地图API提供的地图缩略图控件 ...

  8. exec 重定向

    文件中常用的重定向: command > filename把把标准输出重定向到一个新文件中command >> filename 把把标准输出重定向到一个文件中 (追加)comman ...

  9. poj 2513 Colored Sticks(欧拉路径+并检查集合+特里)

    题目链接:poj 2513 Colored Sticks 题目大意:有N个木棍,每根木棍两端被涂上颜色.如今给定每一个木棍两端的颜色.不同木棍之间拼接须要颜色同样的 端才干够.问最后是否能将N个木棍拼 ...

  10. [DevEpxress]GridControl 显示Gif动画

    原文:[DevEpxress]GridControl 显示Gif动画 如果没有对进行设置,那么GridControl列中gif在编辑状态下,才能显示动画效果,如果要设置列自动显示动画效果,可以进行如下 ...