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視圖:


演示一下,更改密碼:





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM