1. 程式人生 > >MVC的基類

MVC的基類

mvc

設計一個驗證用戶身份是否登陸的基類BaseController

技術分享

/// <summary>
    /// 所有需要進行登錄控制的控制器基類    /// </summary>
    public class BaseController : Controller 
    {        /// <summary>
        /// 當前登錄的用戶屬性        /// </summary>
        public UserInfo CurrentUserInfo { get; set; }        /// <summary>
        /// 重新基類在Action執行之前的事情        /// </summary>
        /// <param name="filterContext">重寫方法的參數</param>
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {            base.OnActionExecuting(filterContext);            //得到用戶登錄的信息
            CurrentUserInfo = Session["UserInfo"] as UserInfo;            //判斷用戶是否為空
            if (CurrentUserInfo == null)
            {
                Response.Redirect("/Login/Index");
            }
        }        protected override void OnException(ExceptionContext filterContext)
        {            base.OnException(filterContext);            //錯誤記錄            WHC.Framework.Commons.LogTextHelper.Error(filterContext.Exception);            // 當自定義顯示錯誤 mode = On,顯示友好錯誤頁面
            if (filterContext.HttpContext.IsCustomErrorEnabled)
            {
                filterContext.ExceptionHandled = true;                this.View("Error").ExecuteResult(this.ControllerContext);
            }
        }
........................
    }

技術分享

有了這個基類,我們在主頁的Home控制類,就可以使用用戶信息對象了進行操作了,而且必須要求客戶登陸了

技術分享

public class HomeController : BaseController
    {        public ActionResult Index()
        {            if (CurrentUserInfo != null)
            {
                ViewBag.FullName = CurrentUserInfo.FullName;
                ViewBag.Name = CurrentUserInfo.Name;
            }            return View();
        }
................
    }

技術分享


MVC的基類