Beispiel #1
0
        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());
            }
        }