mvc中利用Attribute特性来进行进行简单的登陆验证
前段时间一直比较忙。好不容易忙完。闲的没事干,就捣腾了下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中我们就完成了登录验证了。。。。
方法写的比较简单。在此望各位见谅。。。