Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filterContext"></param>
        private void Handle(ActionExecutingContext filterContext)
        {
            Controller controller = filterContext.Controller as Controller;

            //token
            String Token = filterContext.HttpContext.Request.Query[GWebVariable.QingTokenAvg];

            switch (Token)
            {
            case string topic when String.IsNullOrWhiteSpace(topic):
            {
                break;
            }

            default:
            {
                break;
            }
            }

            if (controller != null)
            {
                DTO_StoreAccount storeAccount = controller.HttpContext.Session.GetStoreAccount();

                switch (storeAccount)
                {
                case DTO_StoreAccount acc when acc != null:
                {
                    break;
                }

                case null:
                default:
                {
                    UnauthorizedHandle(filterContext);
                    break;
                }
                }

                return;
            }
            else
            {
                UnauthorizedHandle(filterContext);
                return;
            }
        }
        /// <summary>
        /// 登录操作
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        static public EM_LoginState LoginLogic(this Controller controller, DTOAPIReq_Login data)
        {
            CoreContext db = new CoreContext();

            Account account = (from
                               x
                               in
                               db.Accounts.Include(obj => obj.AccountRoles)
                               where
                               x.Username == data.username
                               select x).FirstOrDefault();

            if (account == null)
            {
                return(EM_LoginState.NoExist);
            }

            if (account.Password == data.password)
            {
                IList <string> roles = (from x in account.AccountRoles select x.role.RoleName).ToList();

                DTO_StoreAccount storeAccount = new DTO_StoreAccount
                {
                    Id           = account.Id,
                    username     = account.Username,
                    password     = account.Password,
                    avatar       = account.Avatar,
                    email        = account.Email,
                    name         = account.DisplayName,
                    introduction = account.Introduction,
                    phone        = account.Phone,
                    roles        = roles
                };

                controller.HttpContext.Session.SetStoreAccount(storeAccount);

                return(EM_LoginState.Pass);
            }
            else
            {
                return(EM_LoginState.PasswordError);
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="session"></param>
 /// <param name="data"></param>
 public static void SetStoreAccount(this ISession session, DTO_StoreAccount data)
 {
     session.SetObject(GWebVariable.StoreAccount, data);
 }