MVC应用程序请求密码的功能(二)
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视图:
演示一下,更改密码:
MVC应用程序请求密码的功能(二)的更多相关文章
- MVC应用程序请求密码的功能1
MVC应用程序请求密码的功能(一) 经过一系列的练习,实现了会员注册<MVC会员注册>http://www.cnblogs.com/insus/p/3439599.html,登录<M ...
- MVC应用程序请求密码的功能(一)
经过一系列的练习,实现了会员注册<MVC会员注册>http://www.cnblogs.com/insus/p/3439599.html,登录<MVC应用程序实现会员登录功能> ...
- 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段
创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...
- Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)
简单介绍 关于SignalR的简单实用 请参考 Asp.NET MVC 使用 SignalR 实现推送功能一(Hubs 在线聊天室) 在上一篇中,我们只是介绍了简单的消息推送,今天我们来修改一下,实现 ...
- 详解ASP.NET MVC应用程序请求生命周期
------转载当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request 和Http response 过程中, ...
- webpack4+node合并资源请求, 实现combo功能(二十三)
本文学习使用nodejs实现css或js资源文件的合并请求功能,我们都知道在一个复杂的项目当中,可能会使用到很多第三方插件,虽然目前使用vue开发系统或者h5页面,vue组件够用,但是有的项目中会使用 ...
- MVC应用程序实现会员登录功能
实现之前,我们已经把验证成功的信息存在cookie里<MVC登录前准备写好cookie>http://www.cnblogs.com/insus/p/3464105.html.现在就可以实 ...
- asp.net MVC 应用程序的生命周期
下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html ...
- asp.net MVC 应用程序的生命周期(上)
首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的 ...
随机推荐
- ExtJs在disabled和readOnly美学分析
ExtJs中disabled和readOnly美观度的分析 ExtJs中.假设设置输入框为仅仅读属性,一般第一考虑的都是readonly=true 它的效果和正常输入框一样,可是不同意输入: 然而,它 ...
- 【通过做专题研习Android】知识点:SharedPreferences
Ⅰ. 一个简短的引论 很多时候我们需要开发软件,为用户提供软件参数设置功能,比如,我们经常使用 QQ.用户可以设置自己是否同意加入一个陌生人为好友.对于软件的配置参数的存储,假设window採用ini ...
- 毕业后的第二份工作:进入国外 在新加坡工作 每月一次18K
--訪传智播客成都校区12.26就业班学员 杨洋 姓名:杨洋 毕业院校:重庆科技学院 专业:电子信息技术与project 就职公司:新电科技 岗位:Javaproject师 月薪:18K 上午.他刚去 ...
- 使用Maven在Eclipse中创建Web项目[转]
一.新建 Maven Web项目 1.新建Maven Project new project-->选择 Maven Project --> 下一步 选择工作空间 -->下一步 在Fi ...
- matlab配置Libsvm 防止备忘录
1 首先我们要下载一个Libsvm 工具箱 其中,这一切都可以被下载到 2 我们解包 我解压在桌面上 住址C:\Users\Administrator\Desktop\libsvm 3打开matlab ...
- Android4.4 Framework分析——startService创建过程
我们经常使用context.startService()要启动service.下面就来分析这service启动过程,下图是service启动序列图: watermark/2/text/aHR0cDov ...
- EasyX
官方网站:http://www.easyx.cn/ 安装图解:http://www.easyx.cn/news/View.aspx?id=5 系统支持[1] 编译环境版本:Visual C+ ...
- PeopleRank从社交网络中发现个体价值
阅读导读: 1.什么是PeopleRank? 2.PeopleRank和PageRank有什么差别? 3.PR分析微博数据时,怎样对微博单个账号评分? 4.R语言怎样递归计算矩阵特征值? 5.怎样计算 ...
- 使用javascript实现的一些功能
原文:使用javascript实现的一些功能 今天学习了javascript中的事件,已经接近尾声,可以说明天跨入jquery的学习啦,学习了一周的javascript,感觉还没有掌握其中学习的微妙之 ...
- STL 源代码分析 算法 stl_algo.h -- binary_search
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie binary_search -------------------------------- ...