ASP.NET的MVC中使用Session做身份验证(附代码下载)
場景
ASP.NET中MVC編程模式簡介與搭建HelloWorld項目:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106795640
在上面使用MVC搭建起來Hello World項目時為了避免太多程序代碼造成混淆。在新建MVC項目時將默認的驗證調整為無身份驗證。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
新建完項目后建立新的文件夾Filters,然后在此文件夾下添加類AuthorizePlusAttribute
此類要繼承AuthorizeAttribute,并重寫方法OnAuthorization
注意要添加命名空間
using System.Web.Mvc;AuthorizePlusAttribute類代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MVCSessionTest.Filters {public class AuthorizePlusAttribute : AuthorizeAttribute{public override void OnAuthorization(AuthorizationContext filterContext){if (Convert.ToBoolean(filterContext.HttpContext.Session["auth"])){//驗證通過}else{//驗證失敗直接丟回 401base.HandleUnauthorizedRequest(filterContext);}}} }然后在HomeController中添加三個Action,分別模擬登錄、注銷和后臺
??????? public ActionResult Login(){Session["auth"] = true;return RedirectToAction("Index");}public ActionResult Logout(){Session["auth"] = false;return RedirectToAction("Index");}[AuthorizePlus]public ActionResult Backend(){return Content("您已進入后臺");}注意要使用AuthorizePlus注解需要添加命名空間
using System.Web.Mvc;然后在index.cshtml中添加三個鏈接
??? <p><a class="btn btn-default" href="@Url.Action("Backend")">后臺 »</a></p><p><a class="btn btn-default" href="@Url.Action("Login")">登錄 »</a></p><p><a class="btn btn-default" href="@Url.Action("Logout")">注銷 »</a></p>運行項目
如果未登錄直接進入后臺或者注銷之后再次進入后臺則會
只有在點擊登錄之后才能進入后臺
?
示例代碼下載
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12584653
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的ASP.NET的MVC中使用Session做身份验证(附代码下载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery中使用table2excel
- 下一篇: ASP.NET的MVC中使用Cookie