public override void OnAuthorization(AuthorizationContext filterContext) { if (string.IsNullOrEmpty(SessionPersister.Login)) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Account", action = "AdminLogin" })); } else { AdminAccountModel am = new AdminAccountModel(); CustomPrincipal cp = new CustomPrincipal(am.Find(SessionPersister.Login)); if (!cp.IsInRole(Roles)) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "Index" })); } } }
public Task <AdminAccountModel> GetAdminAccountAsync() { _memoryCache.TryGetValue(CacheKey, out AdminSettingCacheModel raw); if (raw == null) { raw = SetToCache(); } var model = new AdminAccountModel { Id = raw.Id, Password = (DataSecurityUltils.Decrypt(raw.Password ?? "", ApplicationConfigs.SpojKey.ForPassword)), Username = (DataSecurityUltils.Decrypt(raw.UserName ?? "", ApplicationConfigs.SpojKey.ForUserName)) }; return(Task.FromResult(model)); }
public ActionResult AdminLogin(string login, string password) { AdminAccountModel am = new AdminAccountModel(); if (ModelState.IsValid) { Account acc = am.Login(login, password); if (acc != null) { SessionPersister.Login = acc.Login; Session.Add("Roles", acc.Roles); return(View("../Admin/Index")); } else { return(View()); } } else { return(View()); } }