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. 【Python】Python的urllib模、urllib2模块的网络下载文件

    因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...

  2. 平均得分 【杭州电-HDOJ-2023】 附加题+详细说明

    /* 平均得分 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  3. linux下一个eclipse组态jdk

    今天ubuntu12.04安装eclipse,安装该想法eclipse后.还需要配置jdk.但没想到eclipse我有自己主动做好(但最主要的原因是我的linux在刚刚安装了一个jdk,假设有两个或更 ...

  4. 小记 js unicode 编码解析

    原文:小记 js unicode 编码解析 var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; 关于这样的数据转换为中文问题,常用的两 ...

  5. 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发

    我们坐在地铁.经常拿出新浪手机查看新闻.腾讯新闻,或者看新闻,等刷微信功能.你有没有想过如何实现这些目标. 移动互联网.更活泼. 由于HTML5未来,jQuery Moblie未来. 今天我用jqm的 ...

  6. Spring框架和MVC原理

    Spring框架和MVC原理 目录 Spring框架 SpringMVC工作原理 参考资料 回到顶部 Spring框架 Spring当前框架有20个jar包,大致可以分为6大模块: Core Cont ...

  7. 【百度地图API】如何获取行政区域的边界?

    原文:[百度地图API]如何获取行政区域的边界? 摘要:以前教过大家如何自行获取行政区域,或者自定义获取一个区域的边界值.今天来教大家直接调用百度地图API1.3(目前最新版本)来获取行政区域的边界值 ...

  8. Linux基础正则表达式:grep,sed

    先说明语系对正则表达式的影响    LANG=C:0,1,2,3,4...A,B,C,D...Z a b c d ... z    LANG=zh_CN:0,1,2,3,4...a A b B c C ...

  9. PHP_零基础学php

    现在学习php的工具有很多,所以一般没必要去搭建环境,我用的工具是phpstudy,IDE是Eclipse 1,用php输出一段文字 <html> <head> <tit ...

  10. 【OC学习-12】什么是类的继承?为什么要继承?以及继承里面的注意事项

    (1)怎样实现类的继承? //之前的继承根类,如类ASStudent继承自根类 @interface ASStudent:NSObject{ } @end //如今继承现有自己定义的类,如ASStud ...