zoukankan      html  css  js  c++  java
  • 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视图:


    演示一下,更改密码:




     
     
    标签: AjaxJqueryEmailMVC
  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3475189.html
Copyright © 2011-2022 走看看