MVC應用程序請求密碼的功能(一)


經過一系列的練習,實現了會員注冊《MVC會員注冊http://www.cnblogs.com/insus/p/3439599.html
登錄《MVC應用程序實現會員登錄功能http://www.cnblogs.com/insus/p/3466512.html
以及注銷《MVC會員注銷功能Cookie的應用http://www.cnblogs.com/insus/p/3471147.html等功能。

還差一些什么呢?會員忘記密碼時,能夠請求密碼或是重置自己的密碼。現在Insus.NET就實現這個功能。本次演示中,Insus.NET的實現思路是會員填寫注冊的信息,如帳號和郵箱等,然后給郵箱發送一個超鏈接,用戶打開鏈接,出現重置密碼的網頁。此時會員就可以在24小時有效的情況之下重置密碼。


開始吧,在數據庫創建一張表[dbo].[ChangeRequestPassword],用戶請求密碼時,存儲會員每一次請求臨時的token信息:


token字段,是唯一字段,將用來發送給會員。Account和Email是用來記錄會員請求的帳號與郵箱。而最后一個字段Expire是一個記錄過期的字段。到時程序會根據此字段的時間來鏈接判斷是否失效。

接下來,創建一張郵件參數表[dbo].[EmailParameter]:


一個專業的站點,也許不止使用一個郵箱來發送服務郵件,電子報,會員服務等,應該把主發送的郵件列於此。


最后再創建一張表,是用來存儲所有訂閱等待的將要發送郵箱地址。



接下來,創建一個存儲過程,添加郵件參數:


下面Insus.NET以新浪郵箱為例,登錄之后,可以在選項中看到如下信息:



添加一個發送的郵箱參數,Insus.NET使用新浪的郵箱:


在此Insus.NET建議網友不要嘗試使用上面的帳號與密碼登錄上面所列的郵箱,密碼肯定不是所顯示的啦。

 數據庫的設計還沒有完成,還有幾個存儲過程要寫:


上面的會員請求密碼存儲過程,首先判斷會員在請求密碼時所輸入的帳號與郵箱是否正確。
接着產生一個全新的token碼。當然這個token碼,你也可以按照你的處理方式來產生,唯一性即可。
#36行代碼,是選擇在郵件參數中,使用哪一個參考,即是說使用哪一個郵箱來發送。
#38與#39行代碼的網址,是一個真實正確的網址,肯定的你需要更改你MVC應用程序中的網址。
最后是把信息插入至訂閱郵件列表的表中。等待程序來處理。

現在可以轉到MVC應用程序,打開Entities目錄下的MemberEntity.cs,添加一個方法:



去控制器打開MemberController.cs添加兩個Result:

 

 創建RequestPassword視圖,參考下圖的目錄與路徑:

 

 代碼:


到這里,這部分算完成了,會員可以直接訪問此頁或是我們可以在登錄介面中,放一個鏈接,可以導向此頁:


最后來看看實時操作演示:

 

在演示中已經達到我們最初的想法,但是郵件還是沒有發送出去,只是存在MailingList列表中。下一篇Insus.NET將會實現MVC應用程序自動執行也發送郵件。


免責聲明!

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



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