public ActionResult Login([Bind(Include = "Name,Password")] Member m) { //驗證帳密 var member = accountService.Login(m); if (member != null) { //Authenticaion WebSiteHelper.Authentication(member); //Authenticaion if (!member.Name.Equals("admin")) { string controllerName = WebSiteHelper.GetFeature(member.Name).GetFirstAccessFeature(); if (controllerName != null) { return(RedirectToAction("Index", controllerName)); } else { return(RedirectToAction("Logout", "Home")); } } return(RedirectToAction("Index", "Members")); } else { ViewBag.errorMsg = "wrong name or password"; } return(View()); }
//請求授權時執行 public override void OnAuthorization(AuthorizationContext filterContext) { //獲得url請求裡的controller和action string controllerName = filterContext.RouteData.Values["controller"].ToString().ToString(); Feature feature = WebSiteHelper.GetFeature(); featureAccess = false; switch (controllerName) { case "Infors": if (feature.FeatInfor) { featureAccess = true; } break; case "LogRecords": if (feature.FeatLogRec) { featureAccess = true; } break; default: break; } base.OnAuthorization(filterContext);//進入AuthorizeCore }
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { Feature feature = WebSiteHelper.GetFeature(); string controllerName = feature.GetFirstAccessFeature(); if (controllerName != null) { //導到別頁 filterContext.HttpContext.Response.RedirectToRoute(new { controller = controllerName, action = "Index" }); } else { //用URL filterContext.HttpContext.Response.Redirect("~/Home/Logout"); } //filterContext.Result = new ViewResult { ViewName = AuthorizationFailView }; }