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中我們就完成了登錄驗證了。。。。

方法寫的比較簡單。在此望各位見諒。。。


免責聲明!

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



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