前段時間一直比較忙。好不容易忙完。閑的沒事干,就搗騰了下mvc(ef),因為以前都是用三層框架來進行開發,mvc用的也不是很多。。。眾所周知,在三層里面我們一般都是建一個基類,然后在基類里面寫驗證登錄方法,然后在需要驗證登錄的頁面繼承這個基類即可。。。但到了mvc里面所有的視圖頁面的操作都轉移到了控制器了。。這個時候我們在按照三層的方式建一個基類來繼承驗證登錄,就沒辦法走通了。。。今天我就給大家來展示一個利用Attribute特性來驗證登錄。如果還有不知道這個東東的,可以百度一下Attribute。
首先我們建一個BaseAdminPage.cs的基類
1 public class BaseAdminPage : AuthorizeAttribute 2 { 3 public Admin_SysUser base_SysUser = new Admin_SysUser(); 4 5 public override void OnAuthorization(AuthorizationContext filterContext) 6 { 7 #region 檢查是否登錄 8 9 Admin_SysUser su = new Admin_SysUser(); 10 if (CookieManage.CheckSysUserIsLoginValid(out su)) 11 { 12 su.LastLoginDate = DateTime.Now; 13 UserManage<Admin_SysUser>.UpdateAdminSysUser(su); 14 15 this.base_SysUser = su; 16 } 17 else 18 { 19 this.LoginOut(); 20 } 21 22 #endregion 23 } 24 /// <summary> 25 /// 退出運營支持系統 26 /// </summary> 27 protected void LoginOut() 28 { 29 CookieManage.ClearSysUserLoginCookie(); 30 HttpContext.Current.Response.Write("<script type=\"text/javascript\">window.parent.location.href=\"/AdminManage/Login\";</script>"); 31 } 32 }
基類繼承AuthorizeAttribute這個特性
然后我們在通過重寫
特性中OnAuthorization這個方法來實現驗證登錄
到了這一步我們完成基類登錄驗證。。那么我們如何來調用它呢。。
接下來我們添加一個名為SysUserController的控制器
如果我們只要單個操作進行登錄驗證時,那么我們只需要如下代碼所示
public class SysUserController : Controller { // // GET: /SysUser/ [Controls.BaseAdminPage]// public ActionResult Index() { return View(); } }
如果整個控制器需要驗證登錄,那么我們只需要把代碼稍作修改,如下
1 [Controls.BaseAdminPage] 2 public class SysUserController : Controller 3 { 4 // 5 // GET: /SysUser/ 6 public ActionResult Index() 7 { 8 return View(); 9 } 10 11 }
至此在mvc中我們就完成了登錄驗證了。。。。
方法寫的比較簡單。在此望各位見諒。。。