MVC的基類
阿新 • • 發佈:2017-06-23
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的基類