實現之前,我們已經把驗證成功的信息存在cookie里《MVC登錄前准備寫好cookie》http://www.cnblogs.com/insus/p/3464105.html。現在就可以實現真正的驗證與登錄了。
先去數據庫,寫好一個登錄證的存儲過程[dbo].[usp_Member_LoginVerifyAndGetInfo]:
存儲過程中有兩個判斷,用戶輸入一個不存在的帳號,也要提示帳號或是密碼錯誤,為了系統安全考慮,一般不建議分別提示。
去應用程序,找到Entities目錄,修改MemberEntity.cs類別,添加一個方法:
然后去控制器,添加一個LoginVerify()的ActionResult:
成功之后,兩個Cookie值需要修改與賦值,把IsLogin設為true,並把UserName也一同賦值。后者是在登錄之后,顯示當前登錄用戶名。
接下來,我們去找到Views/Member/Index.cshtml視圖,添加一個form,兩個文本框和一個銨鈕:
寫登錄銨鈕的jQuery代碼:
OK了,如果在登錄驗證通過,它定會導向/Member/Default視圖。
現在還有一個問題,需要想到的,就是驗證通過了,用戶如果還是打開/Member/Index視圖,這時,它還是顯示登錄狀態,明明都登錄成功了,如再顯示這個視圖,似乎有一點點不足。
現在Insus.NET解決它。打開控制器MemberController.cs在Index的ActionResult中,需要添加一個Cookie的判斷,
在Default視圖中,顯示登錄用戶名:
實時操作演示: