/// <summary>
        /// Action执行之前执行
        /// </summary>
        /// <param name="filterContext"></param>
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            CheckSignBusiness _checkSignBusiness = new CheckSignBusiness();

            //若为本地测试,则不需要校验
            if (GlobalSwitch.RunModel == RunModel.LocalTest)
            {
                return;
            }

            //判断是否需要签名
            bool needSign = filterContext.ContainsAttribute <CheckSignAttribute>() && !filterContext.ContainsAttribute <IgnoreSignAttribute>();

            //不需要签名
            if (!needSign)
            {
                return;
            }

            //需要签名
            var checkSignRes = _checkSignBusiness.IsSecurity(filterContext.HttpContext.ApplicationInstance.Context);

            if (!checkSignRes.Success)
            {
                filterContext.Result = new ContentResult()
                {
                    Content = checkSignRes.ToJson()
                };
            }
        }
        /// <summary>
        /// Action执行之前执行
        /// </summary>
        /// <param name="filterContext"></param>
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            CheckSignBusiness _checkSignBusiness = new CheckSignBusiness();

            //若为本地测试,则不需要校验
            if (GlobalSwitch.RunModel == RunModel.LocalTest)
            {
                return;
            }

            //判断是否需要签名
            List <string> attrList = FilterHelper.GetFilterList(filterContext);
            bool          needSign = attrList.Contains(typeof(CheckSignAttribute).FullName) && !attrList.Contains(typeof(IgnoreSignAttribute).FullName);

            //不需要签名
            if (!needSign)
            {
                return;
            }

            //需要签名
            if (!_checkSignBusiness.IsSecurity(filterContext.HttpContext))
            {
                AjaxResult res = new AjaxResult
                {
                    Msg     = "签名校验失败!拒绝访问!",
                    Success = false
                };
                filterContext.Result = new ContentResult()
                {
                    Content = res.ToJson()
                };
            }
        }
Example #3
0
 public CheckSignAttribute()
 {
     _checkSignBusiness = new CheckSignBusiness(Ioc.DefaultContainer.GetService <IDbContextCore>());
 }